From 4640b758c9cdb3772028bba345df635292133bf1 Mon Sep 17 00:00:00 2001 From: Caroline Madsen <69010899+randomsalience@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:24:38 -0500 Subject: [PATCH] d_a_obj_cdoor OK, d_a_obj_wchain mostly done, work on d_a_alink_wolf (#2047) --- Progress.md | 10 +- .../CreateHeap__12daObjCdoor_cFv.s | 82 -- .../d_a_obj_cdoor/Draw__12daObjCdoor_cFv.s | 59 -- .../Execute__12daObjCdoor_cFPPA3_A4_f.s | 25 - .../d_a_obj_cdoor/__dt__12J3DFrameCtrlFv.s | 20 - .../d_a_obj_cdoor/__dt__12daObjCdoor_cFv.s | 60 -- .../actionDead__12daObjCdoor_cFv.s | 4 - .../actionEvent__12daObjCdoor_cFv.s | 25 - .../actionOrderEvent__12daObjCdoor_cFv.s | 29 - .../actionWait__12daObjCdoor_cFv.s | 27 - .../d_a_obj_cdoor/create__12daObjCdoor_cFv.s | 205 ----- .../daObjCdoor_Create__FP10fopAc_ac_c.s | 9 - .../daObjCdoor_Delete__FP12daObjCdoor_c.s | 19 - .../daObjCdoor_Draw__FP12daObjCdoor_c.s | 12 - .../daObjCdoor_Execute__FP12daObjCdoor_c.s | 9 - ...daObjCdoor_searchChain__FP10fopAc_ac_cPv.s | 20 - .../event_proc_call__12daObjCdoor_cFv.s | 49 - .../execCdoor__12daObjCdoor_cFv.s | 117 --- .../execWgate__12daObjCdoor_cFv.s | 80 -- .../init_modeClose__12daObjCdoor_cFv.s | 21 - .../init_modeOpen__12daObjCdoor_cFv.s | 21 - .../init_modeWait__12daObjCdoor_cFv.s | 4 - .../modeClose__12daObjCdoor_cFv.s | 63 -- .../modeOpen__12daObjCdoor_cFv.s | 63 -- .../setMatrix__12daObjCdoor_cFv.s | 26 - .../daObjWchain_Create__FP10fopAc_ac_c.s | 9 - .../daObjWchain_Delete__FP13daObjWchain_c.s | 11 - .../daObjWchain_Draw__FP13daObjWchain_c.s | 9 - .../daObjWchain_Execute__FP13daObjWchain_c.s | 9 - .../daObjWchain_createHeap__FP10fopAc_ac_c.s | 9 - include/JSystem/J3DGraphBase/J3DPacket.h | 1 + include/JSystem/J3DGraphBase/J3DStruct.h | 2 +- include/d/com/d_com_inf_game.h | 4 + include/d/d_drawlist.h | 1 + include/f_op/f_op_actor_mng.h | 1 + include/m_Do/m_Do_audio.h | 4 + .../rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h | 63 +- .../d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h | 84 +- rel/d/a/obj/d_a_obj_cdoor/Makefile | 2 - rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.cpp | 863 ++++++------------ .../unknown_translation_unit_bss.cpp | 28 - rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.cpp | 575 ++++++++---- src/d/a/d_a_alink_wolf.inc | 150 +++ 43 files changed, 961 insertions(+), 1923 deletions(-) delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/CreateHeap__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Draw__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Execute__12daObjCdoor_cFPPA3_A4_f.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12J3DFrameCtrlFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionDead__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionEvent__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionOrderEvent__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionWait__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/create__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Delete__FP12daObjCdoor_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Draw__FP12daObjCdoor_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Execute__FP12daObjCdoor_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_searchChain__FP10fopAc_ac_cPv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/event_proc_call__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execCdoor__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execWgate__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeClose__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeOpen__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeWait__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeClose__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeOpen__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/setMatrix__12daObjCdoor_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Delete__FP13daObjWchain_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Draw__FP13daObjWchain_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Execute__FP13daObjWchain_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_createHeap__FP10fopAc_ac_c.s delete mode 100644 rel/d/a/obj/d_a_obj_cdoor/unknown_translation_unit_bss.cpp diff --git a/Progress.md b/Progress.md index bdb3ac9fb97..4166697f2f2 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 50.002885% | 2010452 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 50.002885% | 2010452 | 4020672 -RELs | 35.505434% | 4083240 | 11500324 -Total | 39.260960% | 6093692 | 15520996 +RELs | 35.541016% | 4087332 | 11500324 +Total | 39.287324% | 6097784 | 15520996 ## RELs @@ -373,7 +373,7 @@ d_a_obj_catdoor | 82.338611% | 2704 | 3284 d_a_obj_cb | 43.008475% | 2436 | 5664 d_a_obj_cblock | 42.294713% | 3008 | 7112 d_a_obj_cboard | 100.000000% | 2648 | 2648 -d_a_obj_cdoor | 40.255786% | 2644 | 6568 +d_a_obj_cdoor | 100.000000% | 6568 | 6568 d_a_obj_chandelier | 100.000000% | 5504 | 5504 d_a_obj_chest | 39.833795% | 2876 | 7220 d_a_obj_cho | 33.555219% | 4436 | 13220 @@ -663,7 +663,7 @@ d_a_obj_warp_obrg | 34.784076% | 4124 | 11856 d_a_obj_waterGate | 47.279550% | 2016 | 4264 d_a_obj_waterPillar | 37.877429% | 5068 | 13380 d_a_obj_waterfall | 34.033613% | 2268 | 6664 -d_a_obj_wchain | 31.823745% | 3120 | 9804 +d_a_obj_wchain | 33.537332% | 3288 | 9804 d_a_obj_wdStick | 32.908234% | 4748 | 14428 d_a_obj_web0 | 75.286533% | 4204 | 5584 d_a_obj_web1 | 100.000000% | 5772 | 5772 @@ -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.505434% | 4083240 | 11500324 +Total | 35.541016% | 4087332 | 11500324 diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/CreateHeap__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/CreateHeap__12daObjCdoor_cFv.s deleted file mode 100644 index d69f371287e..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/CreateHeap__12daObjCdoor_cFv.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_80BC6DB8: -/* 80BC6DB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC6DBC 7C 08 02 A6 */ mflr r0 -/* 80BC6DC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC6DC4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC6DC8 93 C1 00 08 */ stw r30, 8(r1) -/* 80BC6DCC 7C 7F 1B 78 */ mr r31, r3 -/* 80BC6DD0 88 03 05 AE */ lbz r0, 0x5ae(r3) -/* 80BC6DD4 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC6DD8 3C 60 80 BC */ lis r3, l_arcName@ha /* 0x80BC7D78@ha */ -/* 80BC6DDC 38 63 7D 78 */ addi r3, r3, l_arcName@l /* 0x80BC7D78@l */ -/* 80BC6DE0 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80BC6DE4 3C 80 80 BC */ lis r4, l_bmdIdx@ha /* 0x80BC7D18@ha */ -/* 80BC6DE8 38 84 7D 18 */ addi r4, r4, l_bmdIdx@l /* 0x80BC7D18@l */ -/* 80BC6DEC 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80BC6DF0 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC6DF4 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC6DF8 3F C5 00 02 */ addis r30, r5, 2 -/* 80BC6DFC 3B DE C2 F8 */ addi r30, r30, -15624 -/* 80BC6E00 7F C5 F3 78 */ mr r5, r30 -/* 80BC6E04 38 C0 00 80 */ li r6, 0x80 -/* 80BC6E08 4B 47 54 E5 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80BC6E0C 3C 80 00 08 */ lis r4, 8 -/* 80BC6E10 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 80BC6E14 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 80BC6E18 4B 44 DE 3D */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80BC6E1C 90 7F 05 A8 */ stw r3, 0x5a8(r31) -/* 80BC6E20 80 1F 05 A8 */ lwz r0, 0x5a8(r31) -/* 80BC6E24 28 00 00 00 */ cmplwi r0, 0 -/* 80BC6E28 40 82 00 0C */ bne lbl_80BC6E34 -/* 80BC6E2C 38 60 00 00 */ li r3, 0 -/* 80BC6E30 48 00 00 A8 */ b lbl_80BC6ED8 -lbl_80BC6E34: -/* 80BC6E34 88 1F 05 AE */ lbz r0, 0x5ae(r31) -/* 80BC6E38 28 00 00 01 */ cmplwi r0, 1 -/* 80BC6E3C 40 82 00 98 */ bne lbl_80BC6ED4 -/* 80BC6E40 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d -/* 80BC6E44 3C 60 80 BC */ lis r3, l_arcName@ha /* 0x80BC7D78@ha */ -/* 80BC6E48 38 63 7D 78 */ addi r3, r3, l_arcName@l /* 0x80BC7D78@l */ -/* 80BC6E4C 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80BC6E50 38 80 00 06 */ li r4, 6 -/* 80BC6E54 7F C5 F3 78 */ mr r5, r30 -/* 80BC6E58 38 C0 00 80 */ li r6, 0x80 -/* 80BC6E5C 4B 47 54 91 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80BC6E60 7C 64 1B 78 */ mr r4, r3 -/* 80BC6E64 38 7F 05 C0 */ addi r3, r31, 0x5c0 -/* 80BC6E68 38 A0 00 01 */ li r5, 1 -/* 80BC6E6C 38 C0 00 00 */ li r6, 0 -/* 80BC6E70 3C E0 80 BC */ lis r7, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC6E74 C0 27 7D 30 */ lfs f1, lit_3783@l(r7) /* 0x80BC7D30@l */ -/* 80BC6E78 38 E0 00 00 */ li r7, 0 -/* 80BC6E7C 39 00 FF FF */ li r8, -1 -/* 80BC6E80 39 20 00 00 */ li r9, 0 -/* 80BC6E84 4B 44 69 59 */ bl init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb -/* 80BC6E88 88 1F 05 AE */ lbz r0, 0x5ae(r31) -/* 80BC6E8C 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC6E90 3C 60 80 BC */ lis r3, l_arcName@ha /* 0x80BC7D78@ha */ -/* 80BC6E94 38 63 7D 78 */ addi r3, r3, l_arcName@l /* 0x80BC7D78@l */ -/* 80BC6E98 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80BC6E9C 38 80 00 05 */ li r4, 5 -/* 80BC6EA0 7F C5 F3 78 */ mr r5, r30 -/* 80BC6EA4 38 C0 00 80 */ li r6, 0x80 -/* 80BC6EA8 4B 47 54 45 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80BC6EAC 7C 64 1B 78 */ mr r4, r3 -/* 80BC6EB0 38 7F 05 DC */ addi r3, r31, 0x5dc -/* 80BC6EB4 38 A0 00 01 */ li r5, 1 -/* 80BC6EB8 38 C0 00 00 */ li r6, 0 -/* 80BC6EBC 3C E0 80 BC */ lis r7, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC6EC0 C0 27 7D 30 */ lfs f1, lit_3783@l(r7) /* 0x80BC7D30@l */ -/* 80BC6EC4 38 E0 00 00 */ li r7, 0 -/* 80BC6EC8 39 00 FF FF */ li r8, -1 -/* 80BC6ECC 39 20 00 00 */ li r9, 0 -/* 80BC6ED0 4B 44 69 0D */ bl init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb -lbl_80BC6ED4: -/* 80BC6ED4 38 60 00 01 */ li r3, 1 -lbl_80BC6ED8: -/* 80BC6ED8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC6EDC 83 C1 00 08 */ lwz r30, 8(r1) -/* 80BC6EE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC6EE4 7C 08 03 A6 */ mtlr r0 -/* 80BC6EE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC6EEC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Draw__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Draw__12daObjCdoor_cFv.s deleted file mode 100644 index a3806d1bc6f..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Draw__12daObjCdoor_cFv.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_80BC7C04: -/* 80BC7C04 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7C08 7C 08 02 A6 */ mflr r0 -/* 80BC7C0C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7C10 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC7C14 93 C1 00 08 */ stw r30, 8(r1) -/* 80BC7C18 7C 7E 1B 78 */ mr r30, r3 -/* 80BC7C1C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BC7C20 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80BC7C24 38 80 00 10 */ li r4, 0x10 -/* 80BC7C28 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 80BC7C2C 38 DE 01 0C */ addi r6, r30, 0x10c -/* 80BC7C30 4B 5D BB 95 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80BC7C34 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BC7C38 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80BC7C3C 80 9E 05 A8 */ lwz r4, 0x5a8(r30) -/* 80BC7C40 80 84 00 04 */ lwz r4, 4(r4) -/* 80BC7C44 38 BE 01 0C */ addi r5, r30, 0x10c -/* 80BC7C48 4B 5D D1 59 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80BC7C4C 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC7C50 28 00 00 01 */ cmplwi r0, 1 -/* 80BC7C54 40 82 00 34 */ bne lbl_80BC7C88 -/* 80BC7C58 80 7E 05 A8 */ lwz r3, 0x5a8(r30) -/* 80BC7C5C 80 83 00 04 */ lwz r4, 4(r3) -/* 80BC7C60 88 1E 05 B0 */ lbz r0, 0x5b0(r30) -/* 80BC7C64 28 00 00 00 */ cmplwi r0, 0 -/* 80BC7C68 41 82 00 14 */ beq lbl_80BC7C7C -/* 80BC7C6C 38 7E 05 C0 */ addi r3, r30, 0x5c0 -/* 80BC7C70 C0 3E 05 D0 */ lfs f1, 0x5d0(r30) -/* 80BC7C74 4B 44 5D 59 */ bl entry__13mDoExt_bckAnmFP12J3DModelDataf -/* 80BC7C78 48 00 00 10 */ b lbl_80BC7C88 -lbl_80BC7C7C: -/* 80BC7C7C 38 7E 05 DC */ addi r3, r30, 0x5dc -/* 80BC7C80 C0 3E 05 EC */ lfs f1, 0x5ec(r30) -/* 80BC7C84 4B 44 5D 49 */ bl entry__13mDoExt_bckAnmFP12J3DModelDataf -lbl_80BC7C88: -/* 80BC7C88 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC7C8C 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC7C90 80 04 5F 70 */ lwz r0, 0x5f70(r4) -/* 80BC7C94 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80BC7C98 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80BC7C9C 90 1F 00 48 */ stw r0, 0x48(r31) -/* 80BC7CA0 80 04 5F 74 */ lwz r0, 0x5f74(r4) -/* 80BC7CA4 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 80BC7CA8 80 7E 05 A8 */ lwz r3, 0x5a8(r30) -/* 80BC7CAC 4B 44 60 19 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 80BC7CB0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC7CB4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC7CB8 80 03 5F 80 */ lwz r0, 0x5f80(r3) -/* 80BC7CBC 90 1F 00 48 */ stw r0, 0x48(r31) -/* 80BC7CC0 80 03 5F 84 */ lwz r0, 0x5f84(r3) -/* 80BC7CC4 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 80BC7CC8 38 60 00 01 */ li r3, 1 -/* 80BC7CCC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC7CD0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80BC7CD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7CD8 7C 08 03 A6 */ mtlr r0 -/* 80BC7CDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7CE0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Execute__12daObjCdoor_cFPPA3_A4_f.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Execute__12daObjCdoor_cFPPA3_A4_f.s deleted file mode 100644 index 182fd2e4619..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Execute__12daObjCdoor_cFPPA3_A4_f.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80BC7424: -/* 80BC7424 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7428 7C 08 02 A6 */ mflr r0 -/* 80BC742C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7430 80 A3 05 A8 */ lwz r5, 0x5a8(r3) -/* 80BC7434 38 05 00 24 */ addi r0, r5, 0x24 -/* 80BC7438 90 04 00 00 */ stw r0, 0(r4) -/* 80BC743C 88 03 05 AE */ lbz r0, 0x5ae(r3) -/* 80BC7440 2C 00 00 01 */ cmpwi r0, 1 -/* 80BC7444 41 82 00 1C */ beq lbl_80BC7460 -/* 80BC7448 40 80 00 1C */ bge lbl_80BC7464 -/* 80BC744C 2C 00 00 00 */ cmpwi r0, 0 -/* 80BC7450 40 80 00 08 */ bge lbl_80BC7458 -/* 80BC7454 48 00 00 10 */ b lbl_80BC7464 -lbl_80BC7458: -/* 80BC7458 48 00 00 21 */ bl execCdoor__12daObjCdoor_cFv -/* 80BC745C 48 00 00 08 */ b lbl_80BC7464 -lbl_80BC7460: -/* 80BC7460 48 00 01 D1 */ bl execWgate__12daObjCdoor_cFv -lbl_80BC7464: -/* 80BC7464 38 60 00 01 */ li r3, 1 -/* 80BC7468 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC746C 7C 08 03 A6 */ mtlr r0 -/* 80BC7470 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7474 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12J3DFrameCtrlFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12J3DFrameCtrlFv.s deleted file mode 100644 index 20fa849144c..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12J3DFrameCtrlFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80BC7234: -/* 80BC7234 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7238 7C 08 02 A6 */ mflr r0 -/* 80BC723C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7240 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC7244 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80BC7248 41 82 00 1C */ beq lbl_80BC7264 -/* 80BC724C 3C A0 80 BC */ lis r5, __vt__12J3DFrameCtrl@ha /* 0x80BC7EAC@ha */ -/* 80BC7250 38 05 7E AC */ addi r0, r5, __vt__12J3DFrameCtrl@l /* 0x80BC7EAC@l */ -/* 80BC7254 90 1F 00 00 */ stw r0, 0(r31) -/* 80BC7258 7C 80 07 35 */ extsh. r0, r4 -/* 80BC725C 40 81 00 08 */ ble lbl_80BC7264 -/* 80BC7260 4B 70 7A DD */ bl __dl__FPv -lbl_80BC7264: -/* 80BC7264 7F E3 FB 78 */ mr r3, r31 -/* 80BC7268 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC726C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7270 7C 08 03 A6 */ mtlr r0 -/* 80BC7274 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7278 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12daObjCdoor_cFv.s deleted file mode 100644 index 7343179c5e6..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12daObjCdoor_cFv.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_80BC729C: -/* 80BC729C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC72A0 7C 08 02 A6 */ mflr r0 -/* 80BC72A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC72A8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC72AC 93 C1 00 08 */ stw r30, 8(r1) -/* 80BC72B0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80BC72B4 7C 9F 23 78 */ mr r31, r4 -/* 80BC72B8 41 82 00 A4 */ beq lbl_80BC735C -/* 80BC72BC 3C 60 80 BC */ lis r3, __vt__12daObjCdoor_c@ha /* 0x80BC7E80@ha */ -/* 80BC72C0 38 03 7E 80 */ addi r0, r3, __vt__12daObjCdoor_c@l /* 0x80BC7E80@l */ -/* 80BC72C4 90 1E 05 9C */ stw r0, 0x59c(r30) -/* 80BC72C8 38 7E 05 A0 */ addi r3, r30, 0x5a0 -/* 80BC72CC 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC72D0 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC72D4 3C 80 80 BC */ lis r4, l_arcName@ha /* 0x80BC7D78@ha */ -/* 80BC72D8 38 84 7D 78 */ addi r4, r4, l_arcName@l /* 0x80BC7D78@l */ -/* 80BC72DC 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80BC72E0 4B 46 5D 29 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80BC72E4 34 1E 05 DC */ addic. r0, r30, 0x5dc -/* 80BC72E8 41 82 00 20 */ beq lbl_80BC7308 -/* 80BC72EC 34 1E 05 DC */ addic. r0, r30, 0x5dc -/* 80BC72F0 41 82 00 18 */ beq lbl_80BC7308 -/* 80BC72F4 34 1E 05 DC */ addic. r0, r30, 0x5dc -/* 80BC72F8 41 82 00 10 */ beq lbl_80BC7308 -/* 80BC72FC 3C 60 80 BC */ lis r3, __vt__12J3DFrameCtrl@ha /* 0x80BC7EAC@ha */ -/* 80BC7300 38 03 7E AC */ addi r0, r3, __vt__12J3DFrameCtrl@l /* 0x80BC7EAC@l */ -/* 80BC7304 90 1E 05 DC */ stw r0, 0x5dc(r30) -lbl_80BC7308: -/* 80BC7308 34 1E 05 C0 */ addic. r0, r30, 0x5c0 -/* 80BC730C 41 82 00 20 */ beq lbl_80BC732C -/* 80BC7310 34 1E 05 C0 */ addic. r0, r30, 0x5c0 -/* 80BC7314 41 82 00 18 */ beq lbl_80BC732C -/* 80BC7318 34 1E 05 C0 */ addic. r0, r30, 0x5c0 -/* 80BC731C 41 82 00 10 */ beq lbl_80BC732C -/* 80BC7320 3C 60 80 BC */ lis r3, __vt__12J3DFrameCtrl@ha /* 0x80BC7EAC@ha */ -/* 80BC7324 38 03 7E AC */ addi r0, r3, __vt__12J3DFrameCtrl@l /* 0x80BC7EAC@l */ -/* 80BC7328 90 1E 05 C0 */ stw r0, 0x5c0(r30) -lbl_80BC732C: -/* 80BC732C 28 1E 00 00 */ cmplwi r30, 0 -/* 80BC7330 41 82 00 1C */ beq lbl_80BC734C -/* 80BC7334 3C 60 80 3B */ lis r3, __vt__16dBgS_MoveBgActor@ha /* 0x803AB9A0@ha */ -/* 80BC7338 38 03 B9 A0 */ addi r0, r3, __vt__16dBgS_MoveBgActor@l /* 0x803AB9A0@l */ -/* 80BC733C 90 1E 05 9C */ stw r0, 0x59c(r30) -/* 80BC7340 7F C3 F3 78 */ mr r3, r30 -/* 80BC7344 38 80 00 00 */ li r4, 0 -/* 80BC7348 4B 45 19 45 */ bl __dt__10fopAc_ac_cFv -lbl_80BC734C: -/* 80BC734C 7F E0 07 35 */ extsh. r0, r31 -/* 80BC7350 40 81 00 0C */ ble lbl_80BC735C -/* 80BC7354 7F C3 F3 78 */ mr r3, r30 -/* 80BC7358 4B 70 79 E5 */ bl __dl__FPv -lbl_80BC735C: -/* 80BC735C 7F C3 F3 78 */ mr r3, r30 -/* 80BC7360 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC7364 83 C1 00 08 */ lwz r30, 8(r1) -/* 80BC7368 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC736C 7C 08 03 A6 */ mtlr r0 -/* 80BC7370 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7374 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionDead__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionDead__12daObjCdoor_cFv.s deleted file mode 100644 index 72b1cd824d8..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionDead__12daObjCdoor_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80BC7BF8: -/* 80BC7BF8 38 00 00 00 */ li r0, 0 -/* 80BC7BFC 98 03 05 B7 */ stb r0, 0x5b7(r3) -/* 80BC7C00 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionEvent__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionEvent__12daObjCdoor_cFv.s deleted file mode 100644 index eb846afabfd..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionEvent__12daObjCdoor_cFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80BC7B9C: -/* 80BC7B9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7BA0 7C 08 02 A6 */ mflr r0 -/* 80BC7BA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7BA8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC7BAC 93 C1 00 08 */ stw r30, 8(r1) -/* 80BC7BB0 7C 7E 1B 78 */ mr r30, r3 -/* 80BC7BB4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC7BB8 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC7BBC 38 7F 4F F8 */ addi r3, r31, 0x4ff8 -/* 80BC7BC0 A8 9E 05 B4 */ lha r4, 0x5b4(r30) -/* 80BC7BC4 4B 47 FE B5 */ bl endCheck__16dEvent_manager_cFs -/* 80BC7BC8 2C 03 00 00 */ cmpwi r3, 0 -/* 80BC7BCC 41 82 00 14 */ beq lbl_80BC7BE0 -/* 80BC7BD0 38 00 00 03 */ li r0, 3 -/* 80BC7BD4 98 1E 05 B7 */ stb r0, 0x5b7(r30) -/* 80BC7BD8 38 7F 4E C8 */ addi r3, r31, 0x4ec8 -/* 80BC7BDC 4B 47 A8 8D */ bl reset__14dEvt_control_cFv -lbl_80BC7BE0: -/* 80BC7BE0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC7BE4 83 C1 00 08 */ lwz r30, 8(r1) -/* 80BC7BE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7BEC 7C 08 03 A6 */ mtlr r0 -/* 80BC7BF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7BF4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionOrderEvent__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionOrderEvent__12daObjCdoor_cFv.s deleted file mode 100644 index edc0a97aa15..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionOrderEvent__12daObjCdoor_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80BC7B34: -/* 80BC7B34 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7B38 7C 08 02 A6 */ mflr r0 -/* 80BC7B3C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7B40 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC7B44 7C 7F 1B 78 */ mr r31, r3 -/* 80BC7B48 A0 03 00 F8 */ lhz r0, 0xf8(r3) -/* 80BC7B4C 28 00 00 02 */ cmplwi r0, 2 -/* 80BC7B50 40 82 00 10 */ bne lbl_80BC7B60 -/* 80BC7B54 38 00 00 02 */ li r0, 2 -/* 80BC7B58 98 1F 05 B7 */ stb r0, 0x5b7(r31) -/* 80BC7B5C 48 00 00 2C */ b lbl_80BC7B88 -lbl_80BC7B60: -/* 80BC7B60 A8 9F 05 B4 */ lha r4, 0x5b4(r31) -/* 80BC7B64 88 BF 05 B6 */ lbz r5, 0x5b6(r31) -/* 80BC7B68 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 80BC7B6C 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 80BC7B70 38 E0 00 00 */ li r7, 0 -/* 80BC7B74 39 00 00 01 */ li r8, 1 -/* 80BC7B78 4B 45 3B 05 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -/* 80BC7B7C A0 1F 00 FA */ lhz r0, 0xfa(r31) -/* 80BC7B80 60 00 00 02 */ ori r0, r0, 2 -/* 80BC7B84 B0 1F 00 FA */ sth r0, 0xfa(r31) -lbl_80BC7B88: -/* 80BC7B88 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC7B8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7B90 7C 08 03 A6 */ mtlr r0 -/* 80BC7B94 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7B98 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionWait__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionWait__12daObjCdoor_cFv.s deleted file mode 100644 index dba1c64e958..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionWait__12daObjCdoor_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_80BC7AD0: -/* 80BC7AD0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7AD4 7C 08 02 A6 */ mflr r0 -/* 80BC7AD8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7ADC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC7AE0 7C 7F 1B 78 */ mr r31, r3 -/* 80BC7AE4 88 03 05 B6 */ lbz r0, 0x5b6(r3) -/* 80BC7AE8 28 00 00 FF */ cmplwi r0, 0xff -/* 80BC7AEC 41 82 00 34 */ beq lbl_80BC7B20 -/* 80BC7AF0 38 00 00 01 */ li r0, 1 -/* 80BC7AF4 98 1F 05 B7 */ stb r0, 0x5b7(r31) -/* 80BC7AF8 A8 9F 05 B4 */ lha r4, 0x5b4(r31) -/* 80BC7AFC 88 BF 05 B6 */ lbz r5, 0x5b6(r31) -/* 80BC7B00 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 80BC7B04 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 80BC7B08 38 E0 00 00 */ li r7, 0 -/* 80BC7B0C 39 00 00 01 */ li r8, 1 -/* 80BC7B10 4B 45 3B 6D */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -/* 80BC7B14 A0 1F 00 FA */ lhz r0, 0xfa(r31) -/* 80BC7B18 60 00 00 02 */ ori r0, r0, 2 -/* 80BC7B1C B0 1F 00 FA */ sth r0, 0xfa(r31) -lbl_80BC7B20: -/* 80BC7B20 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC7B24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7B28 7C 08 03 A6 */ mtlr r0 -/* 80BC7B2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7B30 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/create__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/create__12daObjCdoor_cFv.s deleted file mode 100644 index 8f4a2530482..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/create__12daObjCdoor_cFv.s +++ /dev/null @@ -1,205 +0,0 @@ -lbl_80BC6F30: -/* 80BC6F30 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BC6F34 7C 08 02 A6 */ mflr r0 -/* 80BC6F38 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BC6F3C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BC6F40 4B 79 B2 9D */ bl _savegpr_29 -/* 80BC6F44 7C 7E 1B 78 */ mr r30, r3 -/* 80BC6F48 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80BC6F4C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80BC6F50 40 82 00 74 */ bne lbl_80BC6FC4 -/* 80BC6F54 7F C0 F3 79 */ or. r0, r30, r30 -/* 80BC6F58 41 82 00 60 */ beq lbl_80BC6FB8 -/* 80BC6F5C 7C 1F 03 78 */ mr r31, r0 -/* 80BC6F60 4B 4B 16 C5 */ bl __ct__16dBgS_MoveBgActorFv -/* 80BC6F64 3C 60 80 BC */ lis r3, __vt__12daObjCdoor_c@ha /* 0x80BC7E80@ha */ -/* 80BC6F68 38 03 7E 80 */ addi r0, r3, __vt__12daObjCdoor_c@l /* 0x80BC7E80@l */ -/* 80BC6F6C 90 1F 05 9C */ stw r0, 0x59c(r31) -/* 80BC6F70 3B BF 05 C0 */ addi r29, r31, 0x5c0 -/* 80BC6F74 3C 60 80 BC */ lis r3, __vt__12J3DFrameCtrl@ha /* 0x80BC7EAC@ha */ -/* 80BC6F78 38 03 7E AC */ addi r0, r3, __vt__12J3DFrameCtrl@l /* 0x80BC7EAC@l */ -/* 80BC6F7C 90 1F 05 C0 */ stw r0, 0x5c0(r31) -/* 80BC6F80 7F A3 EB 78 */ mr r3, r29 -/* 80BC6F84 38 80 00 00 */ li r4, 0 -/* 80BC6F88 4B 76 14 75 */ bl init__12J3DFrameCtrlFs -/* 80BC6F8C 38 00 00 00 */ li r0, 0 -/* 80BC6F90 90 1D 00 18 */ stw r0, 0x18(r29) -/* 80BC6F94 3B BF 05 DC */ addi r29, r31, 0x5dc -/* 80BC6F98 3C 60 80 BC */ lis r3, __vt__12J3DFrameCtrl@ha /* 0x80BC7EAC@ha */ -/* 80BC6F9C 38 03 7E AC */ addi r0, r3, __vt__12J3DFrameCtrl@l /* 0x80BC7EAC@l */ -/* 80BC6FA0 90 1F 05 DC */ stw r0, 0x5dc(r31) -/* 80BC6FA4 7F A3 EB 78 */ mr r3, r29 -/* 80BC6FA8 38 80 00 00 */ li r4, 0 -/* 80BC6FAC 4B 76 14 51 */ bl init__12J3DFrameCtrlFs -/* 80BC6FB0 38 00 00 00 */ li r0, 0 -/* 80BC6FB4 90 1D 00 18 */ stw r0, 0x18(r29) -lbl_80BC6FB8: -/* 80BC6FB8 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80BC6FBC 60 00 00 08 */ ori r0, r0, 8 -/* 80BC6FC0 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80BC6FC4: -/* 80BC6FC4 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80BC6FC8 54 00 C7 3E */ rlwinm r0, r0, 0x18, 0x1c, 0x1f -/* 80BC6FCC 98 1E 05 AE */ stb r0, 0x5ae(r30) -/* 80BC6FD0 38 7E 05 A0 */ addi r3, r30, 0x5a0 -/* 80BC6FD4 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC6FD8 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC6FDC 3C 80 80 BC */ lis r4, l_arcName@ha /* 0x80BC7D78@ha */ -/* 80BC6FE0 38 84 7D 78 */ addi r4, r4, l_arcName@l /* 0x80BC7D78@l */ -/* 80BC6FE4 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80BC6FE8 4B 46 5E D5 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80BC6FEC 7C 7F 1B 78 */ mr r31, r3 -/* 80BC6FF0 2C 1F 00 04 */ cmpwi r31, 4 -/* 80BC6FF4 40 82 02 24 */ bne lbl_80BC7218 -/* 80BC6FF8 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC6FFC 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC7000 7F C3 F3 78 */ mr r3, r30 -/* 80BC7004 3C 80 80 BC */ lis r4, l_arcName@ha /* 0x80BC7D78@ha */ -/* 80BC7008 38 84 7D 78 */ addi r4, r4, l_arcName@l /* 0x80BC7D78@l */ -/* 80BC700C 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80BC7010 3C A0 80 BC */ lis r5, l_dzbIdx@ha /* 0x80BC7D20@ha */ -/* 80BC7014 38 A5 7D 20 */ addi r5, r5, l_dzbIdx@l /* 0x80BC7D20@l */ -/* 80BC7018 7C A5 00 2E */ lwzx r5, r5, r0 -/* 80BC701C 38 C0 00 00 */ li r6, 0 -/* 80BC7020 38 E0 0C 00 */ li r7, 0xc00 -/* 80BC7024 39 00 00 00 */ li r8, 0 -/* 80BC7028 4B 4B 17 95 */ bl MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f -/* 80BC702C 7C 7F 1B 78 */ mr r31, r3 -/* 80BC7030 2C 1F 00 05 */ cmpwi r31, 5 -/* 80BC7034 40 82 00 0C */ bne lbl_80BC7040 -/* 80BC7038 38 60 00 05 */ li r3, 5 -/* 80BC703C 48 00 01 E0 */ b lbl_80BC721C -lbl_80BC7040: -/* 80BC7040 80 7E 05 A8 */ lwz r3, 0x5a8(r30) -/* 80BC7044 38 03 00 24 */ addi r0, r3, 0x24 -/* 80BC7048 90 1E 05 04 */ stw r0, 0x504(r30) -/* 80BC704C 3C 60 80 45 */ lis r3, mStayNo__20dStage_roomControl_c+0x0@ha /* 0x80450D64@ha */ -/* 80BC7050 88 03 0D 64 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0@l(r3) /* 0x80450D64@l */ -/* 80BC7054 98 1E 04 8C */ stb r0, 0x48c(r30) -/* 80BC7058 80 7E 05 A8 */ lwz r3, 0x5a8(r30) -/* 80BC705C 80 83 00 04 */ lwz r4, 4(r3) -/* 80BC7060 7F C3 F3 78 */ mr r3, r30 -/* 80BC7064 4B 45 35 15 */ bl fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData -/* 80BC7068 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80BC706C 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 80BC7070 90 1E 05 BC */ stw r0, 0x5bc(r30) -/* 80BC7074 38 00 FF FF */ li r0, -1 -/* 80BC7078 90 1E 05 B8 */ stw r0, 0x5b8(r30) -/* 80BC707C 38 00 00 00 */ li r0, 0 -/* 80BC7080 98 1E 05 AC */ stb r0, 0x5ac(r30) -/* 80BC7084 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC7088 28 00 00 01 */ cmplwi r0, 1 -/* 80BC708C 40 82 00 E0 */ bne lbl_80BC716C -/* 80BC7090 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC7094 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC7098 80 9E 05 BC */ lwz r4, 0x5bc(r30) -/* 80BC709C 88 1E 04 BA */ lbz r0, 0x4ba(r30) -/* 80BC70A0 7C 05 07 74 */ extsb r5, r0 -/* 80BC70A4 4B 46 E2 BD */ bl isSwitch__10dSv_info_cCFii -/* 80BC70A8 98 7E 05 B0 */ stb r3, 0x5b0(r30) -/* 80BC70AC 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80BC70B0 54 00 A6 3E */ rlwinm r0, r0, 0x14, 0x18, 0x1f -/* 80BC70B4 98 1E 05 B6 */ stb r0, 0x5b6(r30) -/* 80BC70B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC70BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC70C0 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 80BC70C4 7F C4 F3 78 */ mr r4, r30 -/* 80BC70C8 88 BE 05 B6 */ lbz r5, 0x5b6(r30) -/* 80BC70CC 4B 48 05 CD */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 80BC70D0 B0 7E 05 B4 */ sth r3, 0x5b4(r30) -/* 80BC70D4 38 00 00 00 */ li r0, 0 -/* 80BC70D8 98 1E 05 B7 */ stb r0, 0x5b7(r30) -/* 80BC70DC 88 1E 05 B6 */ lbz r0, 0x5b6(r30) -/* 80BC70E0 28 00 00 FF */ cmplwi r0, 0xff -/* 80BC70E4 40 82 00 0C */ bne lbl_80BC70F0 -/* 80BC70E8 38 00 00 03 */ li r0, 3 -/* 80BC70EC 98 1E 05 B7 */ stb r0, 0x5b7(r30) -lbl_80BC70F0: -/* 80BC70F0 88 1E 05 B0 */ lbz r0, 0x5b0(r30) -/* 80BC70F4 28 00 00 00 */ cmplwi r0, 0 -/* 80BC70F8 41 82 00 38 */ beq lbl_80BC7130 -/* 80BC70FC A8 1E 05 C8 */ lha r0, 0x5c8(r30) -/* 80BC7100 3C 60 80 BC */ lis r3, lit_3909@ha /* 0x80BC7D38@ha */ -/* 80BC7104 C8 23 7D 38 */ lfd f1, lit_3909@l(r3) /* 0x80BC7D38@l */ -/* 80BC7108 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80BC710C 90 01 00 0C */ stw r0, 0xc(r1) -/* 80BC7110 3C 00 43 30 */ lis r0, 0x4330 -/* 80BC7114 90 01 00 08 */ stw r0, 8(r1) -/* 80BC7118 C8 01 00 08 */ lfd f0, 8(r1) -/* 80BC711C EC 00 08 28 */ fsubs f0, f0, f1 -/* 80BC7120 D0 1E 05 D0 */ stfs f0, 0x5d0(r30) -/* 80BC7124 38 7E 05 C0 */ addi r3, r30, 0x5c0 -/* 80BC7128 4B 44 63 01 */ bl play__14mDoExt_baseAnmFv -/* 80BC712C 48 00 00 34 */ b lbl_80BC7160 -lbl_80BC7130: -/* 80BC7130 A8 1E 05 C8 */ lha r0, 0x5c8(r30) -/* 80BC7134 3C 60 80 BC */ lis r3, lit_3909@ha /* 0x80BC7D38@ha */ -/* 80BC7138 C8 23 7D 38 */ lfd f1, lit_3909@l(r3) /* 0x80BC7D38@l */ -/* 80BC713C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80BC7140 90 01 00 0C */ stw r0, 0xc(r1) -/* 80BC7144 3C 00 43 30 */ lis r0, 0x4330 -/* 80BC7148 90 01 00 08 */ stw r0, 8(r1) -/* 80BC714C C8 01 00 08 */ lfd f0, 8(r1) -/* 80BC7150 EC 00 08 28 */ fsubs f0, f0, f1 -/* 80BC7154 D0 1E 05 EC */ stfs f0, 0x5ec(r30) -/* 80BC7158 38 7E 05 DC */ addi r3, r30, 0x5dc -/* 80BC715C 4B 44 62 CD */ bl play__14mDoExt_baseAnmFv -lbl_80BC7160: -/* 80BC7160 7F C3 F3 78 */ mr r3, r30 -/* 80BC7164 48 00 05 F9 */ bl init_modeWait__12daObjCdoor_cFv -/* 80BC7168 48 00 00 60 */ b lbl_80BC71C8 -lbl_80BC716C: -/* 80BC716C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC7170 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC7174 80 9E 05 BC */ lwz r4, 0x5bc(r30) -/* 80BC7178 88 1E 04 BA */ lbz r0, 0x4ba(r30) -/* 80BC717C 7C 05 07 74 */ extsb r5, r0 -/* 80BC7180 4B 46 E1 E1 */ bl isSwitch__10dSv_info_cCFii -/* 80BC7184 2C 03 00 00 */ cmpwi r3, 0 -/* 80BC7188 41 82 00 30 */ beq lbl_80BC71B8 -/* 80BC718C 38 00 00 01 */ li r0, 1 -/* 80BC7190 98 1E 05 AC */ stb r0, 0x5ac(r30) -/* 80BC7194 C0 3E 04 D4 */ lfs f1, 0x4d4(r30) -/* 80BC7198 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC719C 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC71A0 3C 60 80 BC */ lis r3, l_moveOffsetY@ha /* 0x80BC7D80@ha */ -/* 80BC71A4 38 63 7D 80 */ addi r3, r3, l_moveOffsetY@l /* 0x80BC7D80@l */ -/* 80BC71A8 7C 03 04 2E */ lfsx f0, r3, r0 -/* 80BC71AC EC 01 00 2A */ fadds f0, f1, f0 -/* 80BC71B0 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 80BC71B4 48 00 00 14 */ b lbl_80BC71C8 -lbl_80BC71B8: -/* 80BC71B8 3C 60 80 BC */ lis r3, daObjCdoor_searchChain__FP10fopAc_ac_cPv@ha /* 0x80BC6EF0@ha */ -/* 80BC71BC 38 63 6E F0 */ addi r3, r3, daObjCdoor_searchChain__FP10fopAc_ac_cPv@l /* 0x80BC6EF0@l */ -/* 80BC71C0 7F C4 F3 78 */ mr r4, r30 -/* 80BC71C4 4B 45 26 35 */ bl fopAcIt_Judge__FPFPvPv_PvPv -lbl_80BC71C8: -/* 80BC71C8 C0 5E 04 D8 */ lfs f2, 0x4d8(r30) -/* 80BC71CC C0 3E 04 D4 */ lfs f1, 0x4d4(r30) -/* 80BC71D0 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC71D4 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC71D8 3C 60 80 BC */ lis r3, l_attentionOffsetY@ha /* 0x80BC7D28@ha */ -/* 80BC71DC 38 63 7D 28 */ addi r3, r3, l_attentionOffsetY@l /* 0x80BC7D28@l */ -/* 80BC71E0 7C 03 04 2E */ lfsx f0, r3, r0 -/* 80BC71E4 EC 21 00 2A */ fadds f1, f1, f0 -/* 80BC71E8 C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 80BC71EC D0 1E 05 50 */ stfs f0, 0x550(r30) -/* 80BC71F0 D0 3E 05 54 */ stfs f1, 0x554(r30) -/* 80BC71F4 D0 5E 05 58 */ stfs f2, 0x558(r30) -/* 80BC71F8 C0 1E 05 50 */ lfs f0, 0x550(r30) -/* 80BC71FC D0 1E 05 38 */ stfs f0, 0x538(r30) -/* 80BC7200 C0 1E 05 54 */ lfs f0, 0x554(r30) -/* 80BC7204 D0 1E 05 3C */ stfs f0, 0x53c(r30) -/* 80BC7208 C0 1E 05 58 */ lfs f0, 0x558(r30) -/* 80BC720C D0 1E 05 40 */ stfs f0, 0x540(r30) -/* 80BC7210 7F C3 F3 78 */ mr r3, r30 -/* 80BC7214 48 00 01 AD */ bl setMatrix__12daObjCdoor_cFv -lbl_80BC7218: -/* 80BC7218 7F E3 FB 78 */ mr r3, r31 -lbl_80BC721C: -/* 80BC721C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BC7220 4B 79 B0 09 */ bl _restgpr_29 -/* 80BC7224 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BC7228 7C 08 03 A6 */ mtlr r0 -/* 80BC722C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BC7230 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Create__FP10fopAc_ac_c.s deleted file mode 100644 index a58537bfc42..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BC727C: -/* 80BC727C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7280 7C 08 02 A6 */ mflr r0 -/* 80BC7284 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7288 4B FF FC A9 */ bl create__12daObjCdoor_cFv -/* 80BC728C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7290 7C 08 03 A6 */ mtlr r0 -/* 80BC7294 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7298 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Delete__FP12daObjCdoor_c.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Delete__FP12daObjCdoor_c.s deleted file mode 100644 index 3ce5e730bd6..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Delete__FP12daObjCdoor_c.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80BC7378: -/* 80BC7378 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC737C 7C 08 02 A6 */ mflr r0 -/* 80BC7380 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7384 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC7388 7C 7F 1B 78 */ mr r31, r3 -/* 80BC738C 4B 4B 15 51 */ bl MoveBGDelete__16dBgS_MoveBgActorFv -/* 80BC7390 7F E3 FB 78 */ mr r3, r31 -/* 80BC7394 38 80 FF FF */ li r4, -1 -/* 80BC7398 81 9F 05 9C */ lwz r12, 0x59c(r31) -/* 80BC739C 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 80BC73A0 7D 89 03 A6 */ mtctr r12 -/* 80BC73A4 4E 80 04 21 */ bctrl -/* 80BC73A8 38 60 00 01 */ li r3, 1 -/* 80BC73AC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC73B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC73B4 7C 08 03 A6 */ mtlr r0 -/* 80BC73B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC73BC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Draw__FP12daObjCdoor_c.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Draw__FP12daObjCdoor_c.s deleted file mode 100644 index 290fab3d0b2..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Draw__FP12daObjCdoor_c.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80BC7CE4: -/* 80BC7CE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7CE8 7C 08 02 A6 */ mflr r0 -/* 80BC7CEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7CF0 81 83 05 9C */ lwz r12, 0x59c(r3) -/* 80BC7CF4 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 80BC7CF8 7D 89 03 A6 */ mtctr r12 -/* 80BC7CFC 4E 80 04 21 */ bctrl -/* 80BC7D00 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7D04 7C 08 03 A6 */ mtlr r0 -/* 80BC7D08 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7D0C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Execute__FP12daObjCdoor_c.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Execute__FP12daObjCdoor_c.s deleted file mode 100644 index d4060d00366..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Execute__FP12daObjCdoor_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BC79F4: -/* 80BC79F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC79F8 7C 08 02 A6 */ mflr r0 -/* 80BC79FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7A00 4B 4B 0F 51 */ bl MoveBGExecute__16dBgS_MoveBgActorFv -/* 80BC7A04 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7A08 7C 08 03 A6 */ mtlr r0 -/* 80BC7A0C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7A10 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_searchChain__FP10fopAc_ac_cPv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_searchChain__FP10fopAc_ac_cPv.s deleted file mode 100644 index 09857763c8e..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_searchChain__FP10fopAc_ac_cPv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80BC6EF0: -/* 80BC6EF0 A8 03 00 08 */ lha r0, 8(r3) -/* 80BC6EF4 2C 00 01 59 */ cmpwi r0, 0x159 -/* 80BC6EF8 40 82 00 30 */ bne lbl_80BC6F28 -/* 80BC6EFC 88 A3 07 78 */ lbz r5, 0x778(r3) -/* 80BC6F00 80 04 05 BC */ lwz r0, 0x5bc(r4) -/* 80BC6F04 7C 05 00 00 */ cmpw r5, r0 -/* 80BC6F08 40 82 00 20 */ bne lbl_80BC6F28 -/* 80BC6F0C 28 03 00 00 */ cmplwi r3, 0 -/* 80BC6F10 41 82 00 0C */ beq lbl_80BC6F1C -/* 80BC6F14 80 03 00 04 */ lwz r0, 4(r3) -/* 80BC6F18 48 00 00 08 */ b lbl_80BC6F20 -lbl_80BC6F1C: -/* 80BC6F1C 38 00 FF FF */ li r0, -1 -lbl_80BC6F20: -/* 80BC6F20 90 04 05 B8 */ stw r0, 0x5b8(r4) -/* 80BC6F24 4E 80 00 20 */ blr -lbl_80BC6F28: -/* 80BC6F28 38 60 00 00 */ li r3, 0 -/* 80BC6F2C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/event_proc_call__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/event_proc_call__12daObjCdoor_cFv.s deleted file mode 100644 index c0c105eb8cf..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/event_proc_call__12daObjCdoor_cFv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_80BC7A14: -/* 80BC7A14 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7A18 7C 08 02 A6 */ mflr r0 -/* 80BC7A1C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC7A20 3C 80 80 BC */ lis r4, cNullVec__6Z2Calc@ha /* 0x80BC7D58@ha */ -/* 80BC7A24 38 E4 7D 58 */ addi r7, r4, cNullVec__6Z2Calc@l /* 0x80BC7D58@l */ -/* 80BC7A28 3C 80 80 BC */ lis r4, struct_80BC7EB8+0x1@ha /* 0x80BC7EB9@ha */ -/* 80BC7A2C 38 C4 7E B9 */ addi r6, r4, struct_80BC7EB8+0x1@l /* 0x80BC7EB9@l */ -/* 80BC7A30 88 06 00 00 */ lbz r0, 0(r6) -/* 80BC7A34 7C 00 07 75 */ extsb. r0, r0 -/* 80BC7A38 40 82 00 70 */ bne lbl_80BC7AA8 -/* 80BC7A3C 80 87 00 78 */ lwz r4, 0x78(r7) -/* 80BC7A40 80 07 00 7C */ lwz r0, 0x7c(r7) -/* 80BC7A44 90 87 00 A8 */ stw r4, 0xa8(r7) -/* 80BC7A48 90 07 00 AC */ stw r0, 0xac(r7) -/* 80BC7A4C 80 07 00 80 */ lwz r0, 0x80(r7) -/* 80BC7A50 90 07 00 B0 */ stw r0, 0xb0(r7) -/* 80BC7A54 38 A7 00 A8 */ addi r5, r7, 0xa8 -/* 80BC7A58 80 87 00 84 */ lwz r4, 0x84(r7) -/* 80BC7A5C 80 07 00 88 */ lwz r0, 0x88(r7) -/* 80BC7A60 90 85 00 0C */ stw r4, 0xc(r5) -/* 80BC7A64 90 05 00 10 */ stw r0, 0x10(r5) -/* 80BC7A68 80 07 00 8C */ lwz r0, 0x8c(r7) -/* 80BC7A6C 90 05 00 14 */ stw r0, 0x14(r5) -/* 80BC7A70 80 87 00 90 */ lwz r4, 0x90(r7) -/* 80BC7A74 80 07 00 94 */ lwz r0, 0x94(r7) -/* 80BC7A78 90 85 00 18 */ stw r4, 0x18(r5) -/* 80BC7A7C 90 05 00 1C */ stw r0, 0x1c(r5) -/* 80BC7A80 80 07 00 98 */ lwz r0, 0x98(r7) -/* 80BC7A84 90 05 00 20 */ stw r0, 0x20(r5) -/* 80BC7A88 80 87 00 9C */ lwz r4, 0x9c(r7) -/* 80BC7A8C 80 07 00 A0 */ lwz r0, 0xa0(r7) -/* 80BC7A90 90 85 00 24 */ stw r4, 0x24(r5) -/* 80BC7A94 90 05 00 28 */ stw r0, 0x28(r5) -/* 80BC7A98 80 07 00 A4 */ lwz r0, 0xa4(r7) -/* 80BC7A9C 90 05 00 2C */ stw r0, 0x2c(r5) -/* 80BC7AA0 38 00 00 01 */ li r0, 1 -/* 80BC7AA4 98 06 00 00 */ stb r0, 0(r6) -lbl_80BC7AA8: -/* 80BC7AA8 88 03 05 B7 */ lbz r0, 0x5b7(r3) -/* 80BC7AAC 1C 00 00 0C */ mulli r0, r0, 0xc -/* 80BC7AB0 39 87 00 A8 */ addi r12, r7, 0xa8 -/* 80BC7AB4 7D 8C 02 14 */ add r12, r12, r0 -/* 80BC7AB8 4B 79 A5 CD */ bl __ptmf_scall -/* 80BC7ABC 60 00 00 00 */ nop -/* 80BC7AC0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7AC4 7C 08 03 A6 */ mtlr r0 -/* 80BC7AC8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7ACC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execCdoor__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execCdoor__12daObjCdoor_cFv.s deleted file mode 100644 index 760ed93caf3..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execCdoor__12daObjCdoor_cFv.s +++ /dev/null @@ -1,117 +0,0 @@ -lbl_80BC7478: -/* 80BC7478 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BC747C 7C 08 02 A6 */ mflr r0 -/* 80BC7480 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BC7484 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80BC7488 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80BC748C 7C 7E 1B 78 */ mr r30, r3 -/* 80BC7490 3C 60 80 BC */ lis r3, l_bmdIdx@ha /* 0x80BC7D18@ha */ -/* 80BC7494 3B E3 7D 18 */ addi r31, r3, l_bmdIdx@l /* 0x80BC7D18@l */ -/* 80BC7498 88 1E 05 AC */ lbz r0, 0x5ac(r30) -/* 80BC749C 28 00 00 00 */ cmplwi r0, 0 -/* 80BC74A0 40 82 01 78 */ bne lbl_80BC7618 -/* 80BC74A4 80 7E 05 B8 */ lwz r3, 0x5b8(r30) -/* 80BC74A8 3C 03 00 01 */ addis r0, r3, 1 -/* 80BC74AC 28 00 FF FF */ cmplwi r0, 0xffff -/* 80BC74B0 40 82 00 14 */ bne lbl_80BC74C4 -/* 80BC74B4 3C 60 80 BC */ lis r3, daObjCdoor_searchChain__FP10fopAc_ac_cPv@ha /* 0x80BC6EF0@ha */ -/* 80BC74B8 38 63 6E F0 */ addi r3, r3, daObjCdoor_searchChain__FP10fopAc_ac_cPv@l /* 0x80BC6EF0@l */ -/* 80BC74BC 7F C4 F3 78 */ mr r4, r30 -/* 80BC74C0 4B 45 23 39 */ bl fopAcIt_Judge__FPFPvPv_PvPv -lbl_80BC74C4: -/* 80BC74C4 80 7E 05 B8 */ lwz r3, 0x5b8(r30) -/* 80BC74C8 3C 03 00 01 */ addis r0, r3, 1 -/* 80BC74CC 28 00 FF FF */ cmplwi r0, 0xffff -/* 80BC74D0 41 82 01 48 */ beq lbl_80BC7618 -/* 80BC74D4 90 61 00 0C */ stw r3, 0xc(r1) -/* 80BC74D8 3C 60 80 02 */ lis r3, fpcSch_JudgeByID__FPvPv@ha /* 0x80023590@ha */ -/* 80BC74DC 38 63 35 90 */ addi r3, r3, fpcSch_JudgeByID__FPvPv@l /* 0x80023590@l */ -/* 80BC74E0 38 81 00 0C */ addi r4, r1, 0xc -/* 80BC74E4 4B 45 23 15 */ bl fopAcIt_Judge__FPFPvPv_PvPv -/* 80BC74E8 28 03 00 00 */ cmplwi r3, 0 -/* 80BC74EC 41 82 01 2C */ beq lbl_80BC7618 -/* 80BC74F0 88 03 07 76 */ lbz r0, 0x776(r3) -/* 80BC74F4 28 00 00 00 */ cmplwi r0, 0 -/* 80BC74F8 41 82 00 A4 */ beq lbl_80BC759C -/* 80BC74FC 38 00 FF FF */ li r0, -1 -/* 80BC7500 90 1E 05 B8 */ stw r0, 0x5b8(r30) -/* 80BC7504 38 00 00 01 */ li r0, 1 -/* 80BC7508 98 1E 05 AC */ stb r0, 0x5ac(r30) -/* 80BC750C C0 3E 04 AC */ lfs f1, 0x4ac(r30) -/* 80BC7510 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC7514 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC7518 3C 60 80 BC */ lis r3, l_moveOffsetY@ha /* 0x80BC7D80@ha */ -/* 80BC751C 38 63 7D 80 */ addi r3, r3, l_moveOffsetY@l /* 0x80BC7D80@l */ -/* 80BC7520 7C 03 04 2E */ lfsx f0, r3, r0 -/* 80BC7524 EC 01 00 2A */ fadds f0, f1, f0 -/* 80BC7528 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 80BC752C 88 1E 05 AD */ lbz r0, 0x5ad(r30) -/* 80BC7530 28 00 00 00 */ cmplwi r0, 0 -/* 80BC7534 41 82 00 18 */ beq lbl_80BC754C -/* 80BC7538 4B 5B A1 09 */ bl dCam_getBody__Fv -/* 80BC753C 7F C4 F3 78 */ mr r4, r30 -/* 80BC7540 4B 5B A0 5D */ bl ForceLockOff__9dCamera_cFP10fopAc_ac_c -/* 80BC7544 38 00 00 00 */ li r0, 0 -/* 80BC7548 98 1E 05 AD */ stb r0, 0x5ad(r30) -lbl_80BC754C: -/* 80BC754C 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 80BC7550 7C 03 07 74 */ extsb r3, r0 -/* 80BC7554 4B 46 5B 19 */ bl dComIfGp_getReverb__Fi -/* 80BC7558 7C 67 1B 78 */ mr r7, r3 -/* 80BC755C 3C 60 00 08 */ lis r3, 0x0008 /* 0x0008009A@ha */ -/* 80BC7560 38 03 00 9A */ addi r0, r3, 0x009A /* 0x0008009A@l */ -/* 80BC7564 90 01 00 08 */ stw r0, 8(r1) -/* 80BC7568 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 80BC756C 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 80BC7570 80 63 00 00 */ lwz r3, 0(r3) -/* 80BC7574 38 81 00 08 */ addi r4, r1, 8 -/* 80BC7578 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 80BC757C 38 C0 00 00 */ li r6, 0 -/* 80BC7580 C0 3F 00 18 */ lfs f1, 0x18(r31) -/* 80BC7584 FC 40 08 90 */ fmr f2, f1 -/* 80BC7588 C0 7F 00 28 */ lfs f3, 0x28(r31) -/* 80BC758C FC 80 18 90 */ fmr f4, f3 -/* 80BC7590 39 00 00 00 */ li r8, 0 -/* 80BC7594 4B 6E 43 F1 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 80BC7598 48 00 00 78 */ b lbl_80BC7610 -lbl_80BC759C: -/* 80BC759C C0 7E 04 AC */ lfs f3, 0x4ac(r30) -/* 80BC75A0 88 1E 05 AE */ lbz r0, 0x5ae(r30) -/* 80BC75A4 54 00 10 3A */ slwi r0, r0, 2 -/* 80BC75A8 3C 80 80 BC */ lis r4, l_moveOffsetY@ha /* 0x80BC7D80@ha */ -/* 80BC75AC 38 84 7D 80 */ addi r4, r4, l_moveOffsetY@l /* 0x80BC7D80@l */ -/* 80BC75B0 7C 44 04 2E */ lfsx f2, r4, r0 -/* 80BC75B4 C0 3F 00 2C */ lfs f1, 0x2c(r31) -/* 80BC75B8 C0 03 07 A0 */ lfs f0, 0x7a0(r3) -/* 80BC75BC EC 01 00 32 */ fmuls f0, f1, f0 -/* 80BC75C0 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80BC75C4 EC 03 00 2A */ fadds f0, f3, f0 -/* 80BC75C8 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 80BC75CC 88 03 07 74 */ lbz r0, 0x774(r3) -/* 80BC75D0 28 00 00 00 */ cmplwi r0, 0 -/* 80BC75D4 41 82 00 1C */ beq lbl_80BC75F0 -/* 80BC75D8 4B 5B A0 69 */ bl dCam_getBody__Fv -/* 80BC75DC 7F C4 F3 78 */ mr r4, r30 -/* 80BC75E0 4B 5B 9F 55 */ bl ForceLockOn__9dCamera_cFP10fopAc_ac_c -/* 80BC75E4 38 00 00 01 */ li r0, 1 -/* 80BC75E8 98 1E 05 AD */ stb r0, 0x5ad(r30) -/* 80BC75EC 48 00 00 24 */ b lbl_80BC7610 -lbl_80BC75F0: -/* 80BC75F0 88 1E 05 AD */ lbz r0, 0x5ad(r30) -/* 80BC75F4 28 00 00 00 */ cmplwi r0, 0 -/* 80BC75F8 41 82 00 18 */ beq lbl_80BC7610 -/* 80BC75FC 4B 5B A0 45 */ bl dCam_getBody__Fv -/* 80BC7600 7F C4 F3 78 */ mr r4, r30 -/* 80BC7604 4B 5B 9F 99 */ bl ForceLockOff__9dCamera_cFP10fopAc_ac_c -/* 80BC7608 38 00 00 00 */ li r0, 0 -/* 80BC760C 98 1E 05 AD */ stb r0, 0x5ad(r30) -lbl_80BC7610: -/* 80BC7610 7F C3 F3 78 */ mr r3, r30 -/* 80BC7614 4B FF FD AD */ bl setMatrix__12daObjCdoor_cFv -lbl_80BC7618: -/* 80BC7618 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80BC761C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80BC7620 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BC7624 7C 08 03 A6 */ mtlr r0 -/* 80BC7628 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BC762C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execWgate__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execWgate__12daObjCdoor_cFv.s deleted file mode 100644 index eb33717725b..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execWgate__12daObjCdoor_cFv.s +++ /dev/null @@ -1,80 +0,0 @@ -lbl_80BC7630: -/* 80BC7630 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BC7634 7C 08 02 A6 */ mflr r0 -/* 80BC7638 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BC763C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BC7640 4B 79 AB 9D */ bl _savegpr_29 -/* 80BC7644 7C 7E 1B 78 */ mr r30, r3 -/* 80BC7648 3C 60 80 BC */ lis r3, cNullVec__6Z2Calc@ha /* 0x80BC7D58@ha */ -/* 80BC764C 3B E3 7D 58 */ addi r31, r3, cNullVec__6Z2Calc@l /* 0x80BC7D58@l */ -/* 80BC7650 3C 60 80 BC */ lis r3, struct_80BC7EB8+0x0@ha /* 0x80BC7EB8@ha */ -/* 80BC7654 38 A3 7E B8 */ addi r5, r3, struct_80BC7EB8+0x0@l /* 0x80BC7EB8@l */ -/* 80BC7658 88 05 00 00 */ lbz r0, 0(r5) -/* 80BC765C 7C 00 07 75 */ extsb. r0, r0 -/* 80BC7660 40 82 00 58 */ bne lbl_80BC76B8 -/* 80BC7664 80 7F 00 30 */ lwz r3, 0x30(r31) -/* 80BC7668 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 80BC766C 90 7F 00 54 */ stw r3, 0x54(r31) -/* 80BC7670 90 1F 00 58 */ stw r0, 0x58(r31) -/* 80BC7674 80 1F 00 38 */ lwz r0, 0x38(r31) -/* 80BC7678 90 1F 00 5C */ stw r0, 0x5c(r31) -/* 80BC767C 38 9F 00 54 */ addi r4, r31, 0x54 -/* 80BC7680 80 7F 00 3C */ lwz r3, 0x3c(r31) -/* 80BC7684 80 1F 00 40 */ lwz r0, 0x40(r31) -/* 80BC7688 90 64 00 0C */ stw r3, 0xc(r4) -/* 80BC768C 90 04 00 10 */ stw r0, 0x10(r4) -/* 80BC7690 80 1F 00 44 */ lwz r0, 0x44(r31) -/* 80BC7694 90 04 00 14 */ stw r0, 0x14(r4) -/* 80BC7698 80 7F 00 48 */ lwz r3, 0x48(r31) -/* 80BC769C 80 1F 00 4C */ lwz r0, 0x4c(r31) -/* 80BC76A0 90 64 00 18 */ stw r3, 0x18(r4) -/* 80BC76A4 90 04 00 1C */ stw r0, 0x1c(r4) -/* 80BC76A8 80 1F 00 50 */ lwz r0, 0x50(r31) -/* 80BC76AC 90 04 00 20 */ stw r0, 0x20(r4) -/* 80BC76B0 38 00 00 01 */ li r0, 1 -/* 80BC76B4 98 05 00 00 */ stb r0, 0(r5) -lbl_80BC76B8: -/* 80BC76B8 8B BE 05 B0 */ lbz r29, 0x5b0(r30) -/* 80BC76BC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BC76C0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BC76C4 80 9E 05 BC */ lwz r4, 0x5bc(r30) -/* 80BC76C8 88 1E 04 BA */ lbz r0, 0x4ba(r30) -/* 80BC76CC 7C 05 07 74 */ extsb r5, r0 -/* 80BC76D0 4B 46 DC 91 */ bl isSwitch__10dSv_info_cCFii -/* 80BC76D4 98 7E 05 B0 */ stb r3, 0x5b0(r30) -/* 80BC76D8 88 1E 05 B0 */ lbz r0, 0x5b0(r30) -/* 80BC76DC 7C 00 E8 40 */ cmplw r0, r29 -/* 80BC76E0 41 82 00 38 */ beq lbl_80BC7718 -/* 80BC76E4 28 00 00 00 */ cmplwi r0, 0 -/* 80BC76E8 41 82 00 10 */ beq lbl_80BC76F8 -/* 80BC76EC 7F C3 F3 78 */ mr r3, r30 -/* 80BC76F0 48 00 00 7D */ bl init_modeOpen__12daObjCdoor_cFv -/* 80BC76F4 48 00 00 0C */ b lbl_80BC7700 -lbl_80BC76F8: -/* 80BC76F8 7F C3 F3 78 */ mr r3, r30 -/* 80BC76FC 48 00 01 B5 */ bl init_modeClose__12daObjCdoor_cFv -lbl_80BC7700: -/* 80BC7700 3C 60 80 43 */ lis r3, g_mEnvSeMgr@ha /* 0x8042DD70@ha */ -/* 80BC7704 38 63 DD 70 */ addi r3, r3, g_mEnvSeMgr@l /* 0x8042DD70@l */ -/* 80BC7708 30 1D FF FF */ addic r0, r29, -1 -/* 80BC770C 7C 00 E9 10 */ subfe r0, r0, r29 -/* 80BC7710 54 04 06 3E */ clrlwi r4, r0, 0x18 -/* 80BC7714 4B 70 0B 45 */ bl setHyrulSewerOpen__10Z2EnvSeMgrFb -lbl_80BC7718: -/* 80BC7718 7F C3 F3 78 */ mr r3, r30 -/* 80BC771C 88 1E 05 F9 */ lbz r0, 0x5f9(r30) -/* 80BC7720 1C 00 00 0C */ mulli r0, r0, 0xc -/* 80BC7724 39 9F 00 54 */ addi r12, r31, 0x54 -/* 80BC7728 7D 8C 02 14 */ add r12, r12, r0 -/* 80BC772C 4B 79 A9 59 */ bl __ptmf_scall -/* 80BC7730 60 00 00 00 */ nop -/* 80BC7734 7F C3 F3 78 */ mr r3, r30 -/* 80BC7738 4B FF FC 89 */ bl setMatrix__12daObjCdoor_cFv -/* 80BC773C 7F C3 F3 78 */ mr r3, r30 -/* 80BC7740 48 00 02 D5 */ bl event_proc_call__12daObjCdoor_cFv -/* 80BC7744 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BC7748 4B 79 AA E1 */ bl _restgpr_29 -/* 80BC774C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BC7750 7C 08 03 A6 */ mtlr r0 -/* 80BC7754 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BC7758 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeClose__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeClose__12daObjCdoor_cFv.s deleted file mode 100644 index a85891d13c3..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeClose__12daObjCdoor_cFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_80BC78B0: -/* 80BC78B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC78B4 A8 03 05 E2 */ lha r0, 0x5e2(r3) -/* 80BC78B8 3C 80 80 BC */ lis r4, lit_3909@ha /* 0x80BC7D38@ha */ -/* 80BC78BC C8 24 7D 38 */ lfd f1, lit_3909@l(r4) /* 0x80BC7D38@l */ -/* 80BC78C0 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80BC78C4 90 01 00 0C */ stw r0, 0xc(r1) -/* 80BC78C8 3C 00 43 30 */ lis r0, 0x4330 -/* 80BC78CC 90 01 00 08 */ stw r0, 8(r1) -/* 80BC78D0 C8 01 00 08 */ lfd f0, 8(r1) -/* 80BC78D4 EC 00 08 28 */ fsubs f0, f0, f1 -/* 80BC78D8 D0 03 05 EC */ stfs f0, 0x5ec(r3) -/* 80BC78DC 3C 80 80 BC */ lis r4, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC78E0 C0 04 7D 30 */ lfs f0, lit_3783@l(r4) /* 0x80BC7D30@l */ -/* 80BC78E4 D0 03 05 E8 */ stfs f0, 0x5e8(r3) -/* 80BC78E8 38 00 00 00 */ li r0, 0 -/* 80BC78EC 98 03 05 E1 */ stb r0, 0x5e1(r3) -/* 80BC78F0 38 00 00 02 */ li r0, 2 -/* 80BC78F4 98 03 05 F9 */ stb r0, 0x5f9(r3) -/* 80BC78F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC78FC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeOpen__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeOpen__12daObjCdoor_cFv.s deleted file mode 100644 index 001cb5242f6..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeOpen__12daObjCdoor_cFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_80BC776C: -/* 80BC776C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC7770 A8 03 05 C6 */ lha r0, 0x5c6(r3) -/* 80BC7774 3C 80 80 BC */ lis r4, lit_3909@ha /* 0x80BC7D38@ha */ -/* 80BC7778 C8 24 7D 38 */ lfd f1, lit_3909@l(r4) /* 0x80BC7D38@l */ -/* 80BC777C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80BC7780 90 01 00 0C */ stw r0, 0xc(r1) -/* 80BC7784 3C 00 43 30 */ lis r0, 0x4330 -/* 80BC7788 90 01 00 08 */ stw r0, 8(r1) -/* 80BC778C C8 01 00 08 */ lfd f0, 8(r1) -/* 80BC7790 EC 00 08 28 */ fsubs f0, f0, f1 -/* 80BC7794 D0 03 05 D0 */ stfs f0, 0x5d0(r3) -/* 80BC7798 3C 80 80 BC */ lis r4, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC779C C0 04 7D 30 */ lfs f0, lit_3783@l(r4) /* 0x80BC7D30@l */ -/* 80BC77A0 D0 03 05 CC */ stfs f0, 0x5cc(r3) -/* 80BC77A4 38 00 00 00 */ li r0, 0 -/* 80BC77A8 98 03 05 C5 */ stb r0, 0x5c5(r3) -/* 80BC77AC 38 00 00 01 */ li r0, 1 -/* 80BC77B0 98 03 05 F9 */ stb r0, 0x5f9(r3) -/* 80BC77B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC77B8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeWait__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeWait__12daObjCdoor_cFv.s deleted file mode 100644 index bea2e308382..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeWait__12daObjCdoor_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80BC775C: -/* 80BC775C 38 00 00 00 */ li r0, 0 -/* 80BC7760 98 03 05 F9 */ stb r0, 0x5f9(r3) -/* 80BC7764 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeClose__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeClose__12daObjCdoor_cFv.s deleted file mode 100644 index a3de499227a..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeClose__12daObjCdoor_cFv.s +++ /dev/null @@ -1,63 +0,0 @@ -lbl_80BC7900: -/* 80BC7900 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BC7904 7C 08 02 A6 */ mflr r0 -/* 80BC7908 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BC790C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80BC7910 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80BC7914 7C 7F 1B 78 */ mr r31, r3 -/* 80BC7918 88 03 04 E2 */ lbz r0, 0x4e2(r3) -/* 80BC791C 7C 03 07 74 */ extsb r3, r0 -/* 80BC7920 4B 46 57 4D */ bl dComIfGp_getReverb__Fi -/* 80BC7924 7C 67 1B 78 */ mr r7, r3 -/* 80BC7928 3C 60 00 08 */ lis r3, 0x0008 /* 0x000800EC@ha */ -/* 80BC792C 38 03 00 EC */ addi r0, r3, 0x00EC /* 0x000800EC@l */ -/* 80BC7930 90 01 00 0C */ stw r0, 0xc(r1) -/* 80BC7934 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 80BC7938 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 80BC793C 80 63 00 00 */ lwz r3, 0(r3) -/* 80BC7940 38 81 00 0C */ addi r4, r1, 0xc -/* 80BC7944 3B DF 04 D0 */ addi r30, r31, 0x4d0 -/* 80BC7948 7F C5 F3 78 */ mr r5, r30 -/* 80BC794C 38 C0 00 00 */ li r6, 0 -/* 80BC7950 3D 00 80 BC */ lis r8, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC7954 C0 28 7D 30 */ lfs f1, lit_3783@l(r8) /* 0x80BC7D30@l */ -/* 80BC7958 FC 40 08 90 */ fmr f2, f1 -/* 80BC795C 3D 00 80 BC */ lis r8, lit_4014@ha /* 0x80BC7D40@ha */ -/* 80BC7960 C0 68 7D 40 */ lfs f3, lit_4014@l(r8) /* 0x80BC7D40@l */ -/* 80BC7964 FC 80 18 90 */ fmr f4, f3 -/* 80BC7968 39 00 00 00 */ li r8, 0 -/* 80BC796C 4B 6E 4B A1 */ bl seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 80BC7970 38 7F 05 DC */ addi r3, r31, 0x5dc -/* 80BC7974 4B 44 5A B5 */ bl play__14mDoExt_baseAnmFv -/* 80BC7978 2C 03 00 00 */ cmpwi r3, 0 -/* 80BC797C 41 82 00 60 */ beq lbl_80BC79DC -/* 80BC7980 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 80BC7984 7C 03 07 74 */ extsb r3, r0 -/* 80BC7988 4B 46 56 E5 */ bl dComIfGp_getReverb__Fi -/* 80BC798C 7C 67 1B 78 */ mr r7, r3 -/* 80BC7990 3C 60 00 08 */ lis r3, 0x0008 /* 0x0008009A@ha */ -/* 80BC7994 38 03 00 9A */ addi r0, r3, 0x009A /* 0x0008009A@l */ -/* 80BC7998 90 01 00 08 */ stw r0, 8(r1) -/* 80BC799C 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 80BC79A0 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 80BC79A4 80 63 00 00 */ lwz r3, 0(r3) -/* 80BC79A8 38 81 00 08 */ addi r4, r1, 8 -/* 80BC79AC 7F C5 F3 78 */ mr r5, r30 -/* 80BC79B0 38 C0 00 00 */ li r6, 0 -/* 80BC79B4 3D 00 80 BC */ lis r8, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC79B8 C0 28 7D 30 */ lfs f1, lit_3783@l(r8) /* 0x80BC7D30@l */ -/* 80BC79BC FC 40 08 90 */ fmr f2, f1 -/* 80BC79C0 3D 00 80 BC */ lis r8, lit_4014@ha /* 0x80BC7D40@ha */ -/* 80BC79C4 C0 68 7D 40 */ lfs f3, lit_4014@l(r8) /* 0x80BC7D40@l */ -/* 80BC79C8 FC 80 18 90 */ fmr f4, f3 -/* 80BC79CC 39 00 00 00 */ li r8, 0 -/* 80BC79D0 4B 6E 3F B5 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 80BC79D4 7F E3 FB 78 */ mr r3, r31 -/* 80BC79D8 4B FF FD 85 */ bl init_modeWait__12daObjCdoor_cFv -lbl_80BC79DC: -/* 80BC79DC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80BC79E0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80BC79E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BC79E8 7C 08 03 A6 */ mtlr r0 -/* 80BC79EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BC79F0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeOpen__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeOpen__12daObjCdoor_cFv.s deleted file mode 100644 index a1bd294becf..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeOpen__12daObjCdoor_cFv.s +++ /dev/null @@ -1,63 +0,0 @@ -lbl_80BC77BC: -/* 80BC77BC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BC77C0 7C 08 02 A6 */ mflr r0 -/* 80BC77C4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BC77C8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80BC77CC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80BC77D0 7C 7F 1B 78 */ mr r31, r3 -/* 80BC77D4 88 03 04 E2 */ lbz r0, 0x4e2(r3) -/* 80BC77D8 7C 03 07 74 */ extsb r3, r0 -/* 80BC77DC 4B 46 58 91 */ bl dComIfGp_getReverb__Fi -/* 80BC77E0 7C 67 1B 78 */ mr r7, r3 -/* 80BC77E4 3C 60 00 08 */ lis r3, 0x0008 /* 0x000800EC@ha */ -/* 80BC77E8 38 03 00 EC */ addi r0, r3, 0x00EC /* 0x000800EC@l */ -/* 80BC77EC 90 01 00 0C */ stw r0, 0xc(r1) -/* 80BC77F0 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 80BC77F4 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 80BC77F8 80 63 00 00 */ lwz r3, 0(r3) -/* 80BC77FC 38 81 00 0C */ addi r4, r1, 0xc -/* 80BC7800 3B DF 04 D0 */ addi r30, r31, 0x4d0 -/* 80BC7804 7F C5 F3 78 */ mr r5, r30 -/* 80BC7808 38 C0 00 00 */ li r6, 0 -/* 80BC780C 3D 00 80 BC */ lis r8, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC7810 C0 28 7D 30 */ lfs f1, lit_3783@l(r8) /* 0x80BC7D30@l */ -/* 80BC7814 FC 40 08 90 */ fmr f2, f1 -/* 80BC7818 3D 00 80 BC */ lis r8, lit_4014@ha /* 0x80BC7D40@ha */ -/* 80BC781C C0 68 7D 40 */ lfs f3, lit_4014@l(r8) /* 0x80BC7D40@l */ -/* 80BC7820 FC 80 18 90 */ fmr f4, f3 -/* 80BC7824 39 00 00 00 */ li r8, 0 -/* 80BC7828 4B 6E 4C E5 */ bl seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 80BC782C 38 7F 05 C0 */ addi r3, r31, 0x5c0 -/* 80BC7830 4B 44 5B F9 */ bl play__14mDoExt_baseAnmFv -/* 80BC7834 2C 03 00 00 */ cmpwi r3, 0 -/* 80BC7838 41 82 00 60 */ beq lbl_80BC7898 -/* 80BC783C 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 80BC7840 7C 03 07 74 */ extsb r3, r0 -/* 80BC7844 4B 46 58 29 */ bl dComIfGp_getReverb__Fi -/* 80BC7848 7C 67 1B 78 */ mr r7, r3 -/* 80BC784C 3C 60 00 08 */ lis r3, 0x0008 /* 0x0008009A@ha */ -/* 80BC7850 38 03 00 9A */ addi r0, r3, 0x009A /* 0x0008009A@l */ -/* 80BC7854 90 01 00 08 */ stw r0, 8(r1) -/* 80BC7858 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 80BC785C 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 80BC7860 80 63 00 00 */ lwz r3, 0(r3) -/* 80BC7864 38 81 00 08 */ addi r4, r1, 8 -/* 80BC7868 7F C5 F3 78 */ mr r5, r30 -/* 80BC786C 38 C0 00 00 */ li r6, 0 -/* 80BC7870 3D 00 80 BC */ lis r8, lit_3783@ha /* 0x80BC7D30@ha */ -/* 80BC7874 C0 28 7D 30 */ lfs f1, lit_3783@l(r8) /* 0x80BC7D30@l */ -/* 80BC7878 FC 40 08 90 */ fmr f2, f1 -/* 80BC787C 3D 00 80 BC */ lis r8, lit_4014@ha /* 0x80BC7D40@ha */ -/* 80BC7880 C0 68 7D 40 */ lfs f3, lit_4014@l(r8) /* 0x80BC7D40@l */ -/* 80BC7884 FC 80 18 90 */ fmr f4, f3 -/* 80BC7888 39 00 00 00 */ li r8, 0 -/* 80BC788C 4B 6E 40 F9 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 80BC7890 7F E3 FB 78 */ mr r3, r31 -/* 80BC7894 4B FF FE C9 */ bl init_modeWait__12daObjCdoor_cFv -lbl_80BC7898: -/* 80BC7898 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80BC789C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80BC78A0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BC78A4 7C 08 03 A6 */ mtlr r0 -/* 80BC78A8 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BC78AC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/setMatrix__12daObjCdoor_cFv.s b/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/setMatrix__12daObjCdoor_cFv.s deleted file mode 100644 index 32e1edee0fa..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/setMatrix__12daObjCdoor_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80BC73C0: -/* 80BC73C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BC73C4 7C 08 02 A6 */ mflr r0 -/* 80BC73C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BC73CC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BC73D0 7C 7F 1B 78 */ mr r31, r3 -/* 80BC73D4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BC73D8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BC73DC C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 80BC73E0 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 80BC73E4 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 80BC73E8 4B 77 F5 01 */ bl PSMTXTrans -/* 80BC73EC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BC73F0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BC73F4 A8 9F 04 E6 */ lha r4, 0x4e6(r31) -/* 80BC73F8 4B 44 50 3D */ bl mDoMtx_YrotM__FPA4_fs -/* 80BC73FC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BC7400 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BC7404 80 9F 05 A8 */ lwz r4, 0x5a8(r31) -/* 80BC7408 38 84 00 24 */ addi r4, r4, 0x24 -/* 80BC740C 4B 77 F0 A5 */ bl PSMTXCopy -/* 80BC7410 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BC7414 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BC7418 7C 08 03 A6 */ mtlr r0 -/* 80BC741C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BC7420 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Create__FP10fopAc_ac_c.s deleted file mode 100644 index f097f167fe2..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D30414: -/* 80D30414 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D30418 7C 08 02 A6 */ mflr r0 -/* 80D3041C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D30420 4B FF FB 9D */ bl create__13daObjWchain_cFv -/* 80D30424 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D30428 7C 08 03 A6 */ mtlr r0 -/* 80D3042C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D30430 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Delete__FP13daObjWchain_c.s b/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Delete__FP13daObjWchain_c.s deleted file mode 100644 index b45d19e0274..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Delete__FP13daObjWchain_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80D3050C: -/* 80D3050C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D30510 7C 08 02 A6 */ mflr r0 -/* 80D30514 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D30518 38 80 FF FF */ li r4, -1 -/* 80D3051C 4B FF FF 19 */ bl __dt__13daObjWchain_cFv -/* 80D30520 38 60 00 01 */ li r3, 1 -/* 80D30524 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D30528 7C 08 03 A6 */ mtlr r0 -/* 80D3052C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D30530 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Draw__FP13daObjWchain_c.s b/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Draw__FP13daObjWchain_c.s deleted file mode 100644 index 57d498d6641..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Draw__FP13daObjWchain_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D318A0: -/* 80D318A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D318A4 7C 08 02 A6 */ mflr r0 -/* 80D318A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D318AC 4B FF FF 65 */ bl draw__13daObjWchain_cFv -/* 80D318B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D318B4 7C 08 03 A6 */ mtlr r0 -/* 80D318B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D318BC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Execute__FP13daObjWchain_c.s b/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Execute__FP13daObjWchain_c.s deleted file mode 100644 index c31c82aaa4c..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Execute__FP13daObjWchain_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D313F8: -/* 80D313F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D313FC 7C 08 02 A6 */ mflr r0 -/* 80D31400 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D31404 4B FF FC A9 */ bl execute__13daObjWchain_cFv -/* 80D31408 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D3140C 7C 08 03 A6 */ mtlr r0 -/* 80D31410 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D31414 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_createHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_createHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 0bbbadf3628..00000000000 --- a/asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_createHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D2FF9C: -/* 80D2FF9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D2FFA0 7C 08 02 A6 */ mflr r0 -/* 80D2FFA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D2FFA8 4B FF FF 51 */ bl createHeap__13daObjWchain_cFv -/* 80D2FFAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D2FFB0 7C 08 03 A6 */ mtlr r0 -/* 80D2FFB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D2FFB8 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h index cb853c9c741..e43349aeb8c 100644 --- a/include/JSystem/J3DGraphBase/J3DPacket.h +++ b/include/JSystem/J3DGraphBase/J3DPacket.h @@ -108,6 +108,7 @@ public: mpFirstChild = NULL; } + void* getUserArea() { return mpUserData; } void setUserArea(u32 area) { mpUserData = (void*)area; } virtual int entry(J3DDrawBuffer*); diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h index 06fb45e5b0d..e0e23f6379e 100644 --- a/include/JSystem/J3DGraphBase/J3DStruct.h +++ b/include/JSystem/J3DGraphBase/J3DStruct.h @@ -31,7 +31,7 @@ public: } /* 0x00 */ J3DLightInfo mInfo; - /* 0x34 */ u8 field_0x34[64]; + /* 0x34 */ GXLightObj mLightObj; }; // Size = 0x74 struct J3DTextureSRTInfo { diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 64b06fdf3b1..2848f26ea57 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -3780,6 +3780,10 @@ inline void dComIfGd_setListZxlu() { g_dComIfG_gameInfo.drawlist.setXluListZxlu(); } +inline J3DDrawBuffer* dComIfGd_getOpaList() { + return g_dComIfG_gameInfo.drawlist.getOpaList(); +} + inline J3DDrawBuffer* dComIfGd_getOpaListBG() { return g_dComIfG_gameInfo.drawlist.getOpaListBG(); } diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index 5be233aa324..9ece698705c 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -305,6 +305,7 @@ public: void setView(view_class* view) { mView = view; } void setWindow(dDlst_window_c* window) { mWindow = window; } void setViewport(view_port_class* port) { mViewport = port; } + J3DDrawBuffer* getOpaList() { return mDrawBuffers[DB_OPA_LIST]; } J3DDrawBuffer* getOpaListFilter() { return mDrawBuffers[DB_LIST_FILTER]; } J3DDrawBuffer* getOpaListP0() { return mDrawBuffers[DB_LIST_P0]; } J3DDrawBuffer* getOpaListPacket() { return mDrawBuffers[DB_OPA_LIST_PACKET]; } diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 4835731cbfe..0db75df02e8 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -75,6 +75,7 @@ class dBgS_RoofChk; class fopAcM_rc_c { public: static dBgS_RoofChk* getRoofCheck() { return (dBgS_RoofChk*)&mRoofCheck; } + static f32 getRoofY() { return mRoofY; } static bool roofCheck(const cXyz*); static u8 mRoofCheck[80]; static f32 mRoofY; diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index b52fbd7f7bc..ad40461c911 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -227,4 +227,8 @@ inline void mDoAud_startLv3WaterSe(s8 i_reverb) { g_mEnvSeMgr.startLv3WaterSe(i_reverb); } +inline void mDoAud_setHyrulSewerOpen(bool i_close) { + g_mEnvSeMgr.setHyrulSewerOpen(i_close); +} + #endif /* M_DO_M_DO_AUDIO_H */ diff --git a/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h b/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h index ad32cfb2ef6..cedd0725b89 100644 --- a/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h +++ b/include/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.h @@ -1,6 +1,67 @@ #ifndef D_A_OBJ_CDOOR_H #define D_A_OBJ_CDOOR_H -#include "dolphin/types.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/bg/d_bg_s_movebg_actor.h" + +class daObjCdoor_c : public dBgS_MoveBgActor { +public: + enum Mode { + /* 0 */ MODE_WAIT, + /* 1 */ MODE_OPEN, + /* 2 */ MODE_CLOSE, + }; + + enum Action { + /* 0 */ ACT_WAIT, + /* 1 */ ACT_ORDER_EVENT, + /* 2 */ ACT_EVENT, + /* 3 */ ACT_DEAD, + }; + + /* 80BC729C */ virtual ~daObjCdoor_c(); + /* 80BC6DB8 */ int CreateHeap(); + /* 80BC6F30 */ cPhs__Step create(); + /* 80BC73C0 */ void setMatrix(); + /* 80BC7424 */ int Execute(Mtx**); + /* 80BC7478 */ void execCdoor(); + /* 80BC7630 */ void execWgate(); + /* 80BC775C */ void init_modeWait(); + /* 80BC7768 */ void modeWait(); + /* 80BC776C */ void init_modeOpen(); + /* 80BC77BC */ void modeOpen(); + /* 80BC78B0 */ void init_modeClose(); + /* 80BC7900 */ void modeClose(); + /* 80BC7A14 */ void event_proc_call(); + /* 80BC7AD0 */ void actionWait(); + /* 80BC7B34 */ void actionOrderEvent(); + /* 80BC7B9C */ void actionEvent(); + /* 80BC7BF8 */ void actionDead(); + /* 80BC7C04 */ int Draw(); + + void setAction(u8 i_action) { mAction = i_action; } + int getSwitchNum() { return mSw; } + void setChainID(u32 i_id) { mChainID = i_id; } + + /* 0x5A0 */ request_of_phase_process_class mPhaseReq; + /* 0x5A8 */ J3DModel* mpModel; + /* 0x5AC */ bool mEnd; + /* 0x5AD */ bool mCamLock; + /* 0x5AE */ u8 mType; + /* 0x5AF */ u8 field_0x5af; + /* 0x5B0 */ u8 mIsOpen; + /* 0x5B1 */ u8 field_0x5b1[3]; + /* 0x5B4 */ s16 mEventID; + /* 0x5B6 */ u8 mMapToolID; + /* 0x5B7 */ u8 mAction; + /* 0x5B8 */ u32 mChainID; + /* 0x5BC */ int mSw; + /* 0x5C0 */ mDoExt_bckAnm mOpenAnm; + /* 0x5DC */ mDoExt_bckAnm mCloseAnm; + /* 0x5F8 */ u8 field_0x5f8; + /* 0x5F9 */ u8 mMode; +}; + +STATIC_ASSERT(sizeof(daObjCdoor_c) == 0x5FC); #endif /* D_A_OBJ_CDOOR_H */ diff --git a/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h b/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h index 2b521f14cda..85dd94beb15 100644 --- a/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h +++ b/include/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h @@ -1,6 +1,88 @@ #ifndef D_A_OBJ_WCHAIN_H #define D_A_OBJ_WCHAIN_H -#include "dolphin/types.h" +#include "SSystem/SComponent/c_phase.h" +#include "f_op/f_op_actor.h" + +#ifdef NONMATCHING +class daObjWchain_shape_c : public J3DPacket { +public: + /* 80D31418 */ void draw(); + /* 80D318C0 */ ~daObjWchain_shape_c() {} +}; +#else +// To avoid duplicating vtables, the inheritance here has been removed until the rest of the TU matches +class daObjWchain_shape_c { +public: + /* 80D31418 */ void draw(); + // The destructor should be inline, but it gets put in the wrong place + /* 80D318C0 */ ~daObjWchain_shape_c(); + + u8 fake[0x10]; +}; +#endif + +class daObjWchain_c : public fopAc_ac_c { +public: + /* 80D2FEF8 */ int createHeap(); + /* 80D2FFBC */ cPhs__Step create(); + /* 80D30434 */ ~daObjWchain_c(); + /* 80D30534 */ void setMatrix(); + /* 80D305E4 */ s16 getChainAngleZ(cXyz*, int); + /* 80D3080C */ void setChainPos(); + /* 80D310AC */ int execute(); + /* 80D31810 */ int draw(); + + GXLightObj* getLightObj() { return &mTevStr.mLightObj.mLightObj; } + J3DModelData* getChainModelData() { return mpChainModelData; } + cXyz* getChainPos() { return mChainPos; } + csXyz* getChainAngle() { return mChainAngle; } + s16* getChainAngleZ() { return mChainRotation; } + cXyz& getJumpAimPos() { return mEyePos; } + cXyz& getTopPos() { return mTopPos; } + cXyz& getRoofPos() { return mRoofPos; } + f32 getPullLength() { return mPullLength; } + void setPullLength(f32 i_length) { mPullLength = i_length; } + f32 getInitOutLength() { return mInitOutLength; } + f32 getRealRoofY() { return mRealRoofY; } + f32 getMoveDisRate() { return mPullLength * 0.01f; } + f32 getLastOffset() { return 6.0f; } + f32 getDownOffset() { return 100.0f; } + f32 getSwitchOffset() { return 94.0f; } + u8 getSwitchNum() { return mSw; } + void onRide() { mRide = true; } + void offRide() { mRide = false; } + bool checkRideFlg() { return mRide; } + void onEndFlg() { mEnd = true; } + bool getEndFlg() { return mEnd; } + void onNowSwitchFlg() { mDown = mNowSwitch = true; } + + /* 0x568 */ request_of_phase_process_class mPhaseReq; + /* 0x570 */ J3DModel* mpHandleModel; + /* 0x574 */ J3DModelData* mpChainModelData; + /* 0x578 */ daObjWchain_shape_c mShape; + /* 0x588 */ cXyz mTopPos; + /* 0x594 */ cXyz mChainPos[0x10]; + /* 0x654 */ cXyz mChainSpeed[0x10]; + /* 0x714 */ csXyz mChainAngle[0x10]; + /* 0x774 */ bool mRide; + /* 0x775 */ bool mNowSwitch; + /* 0x776 */ bool mEnd; + /* 0x777 */ bool mRidePrev; + /* 0x778 */ u8 mSw; + /* 0x779 */ u8 mRepeatable; + /* 0x77A */ bool mReset; + /* 0x77B */ bool mDown; + /* 0x77C */ s16 mHandleRotation; + /* 0x77E */ u16 field_0x77e; + /* 0x780 */ s16 mChainRotation[0x10]; + /* 0x7A0 */ f32 mPullLength; + /* 0x7A4 */ f32 mInitOutLength; + /* 0x7A8 */ f32 field_0x7a8; + /* 0x7AC */ f32 mRealRoofY; + /* 0x7B0 */ cXyz mRoofPos; +}; + +STATIC_ASSERT(sizeof(daObjWchain_c) == 0x7BC); #endif /* D_A_OBJ_WCHAIN_H */ diff --git a/rel/d/a/obj/d_a_obj_cdoor/Makefile b/rel/d/a/obj/d_a_obj_cdoor/Makefile index ad2fdd486d6..af631e2ca38 100644 --- a/rel/d/a/obj/d_a_obj_cdoor/Makefile +++ b/rel/d/a/obj/d_a_obj_cdoor/Makefile @@ -8,12 +8,10 @@ M420_MAP := $(BUILD_DIR)/rel/d/a/obj/d_a_obj_cdoor.map M420_CPP_FILES := \ rel/executor.cpp \ - rel/d/a/obj/d_a_obj_cdoor/unknown_translation_unit_bss.cpp \ rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.cpp \ M420_O_FILES := \ $(BUILD_DIR)/rel/executor.o \ - $(BUILD_DIR)/rel/d/a/obj/d_a_obj_cdoor/unknown_translation_unit_bss.o \ $(BUILD_DIR)/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.o \ M420_LIBS := \ diff --git a/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.cpp b/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.cpp index 64bbf2ae2b2..1dfc5bd7d5e 100644 --- a/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.cpp +++ b/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.cpp @@ -1,276 +1,22 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_cdoor -// +/** + * d_a_obj_cdoor.cpp + * Object - Sewer Gate / Sluice Gate + */ #include "rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor.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 { - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daObjCdoor_c { - /* 80BC6DB8 */ void CreateHeap(); - /* 80BC6F30 */ void create(); - /* 80BC729C */ ~daObjCdoor_c(); - /* 80BC73C0 */ void setMatrix(); - /* 80BC7424 */ void Execute(f32 (**)[3][4]); - /* 80BC7478 */ void execCdoor(); - /* 80BC7630 */ void execWgate(); - /* 80BC775C */ void init_modeWait(); - /* 80BC7768 */ void modeWait(); - /* 80BC776C */ void init_modeOpen(); - /* 80BC77BC */ void modeOpen(); - /* 80BC78B0 */ void init_modeClose(); - /* 80BC7900 */ void modeClose(); - /* 80BC7A14 */ void event_proc_call(); - /* 80BC7AD0 */ void actionWait(); - /* 80BC7B34 */ void actionOrderEvent(); - /* 80BC7B9C */ void actionEvent(); - /* 80BC7BF8 */ void actionDead(); - /* 80BC7C04 */ void Draw(); -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dKy_tevstr_c {}; - -struct cXyz {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -struct dEvent_manager_c { - /* 80047698 */ void getEventIdx(fopAc_ac_c*, u8); - /* 80047A78 */ void endCheck(s16); -}; - -struct dCamera_c { - /* 80181534 */ void ForceLockOn(fopAc_ac_c*); - /* 8018159C */ void ForceLockOff(fopAc_ac_c*); -}; - -struct dBgW {}; - -struct cBgS_PolyInfo {}; - -struct csXyz {}; - -struct dBgS_MoveBgActor { - /* 80078624 */ dBgS_MoveBgActor(); - /* 80078690 */ bool Create(); - /* 800786A8 */ bool Delete(); - /* 800786B0 */ bool IsDelete(); - /* 800786B8 */ bool ToFore(); - /* 800786C0 */ bool ToBack(); - /* 800787BC */ void MoveBGCreate(char const*, int, - void (*)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, - csXyz*, csXyz*), - u32, f32 (*)[3][4]); - /* 800788DC */ void MoveBGDelete(); - /* 80078950 */ void MoveBGExecute(); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); - /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2EnvSeMgr { - /* 802C8258 */ void setHyrulSewerOpen(bool); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct J3DModel {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 80BC7234 */ ~J3DFrameCtrl(); -}; - -// -// Forward References: -// - -extern "C" void CreateHeap__12daObjCdoor_cFv(); -extern "C" static void daObjCdoor_searchChain__FP10fopAc_ac_cPv(); -extern "C" void create__12daObjCdoor_cFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" static void daObjCdoor_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12daObjCdoor_cFv(); -extern "C" static void daObjCdoor_Delete__FP12daObjCdoor_c(); -extern "C" void setMatrix__12daObjCdoor_cFv(); -extern "C" void Execute__12daObjCdoor_cFPPA3_A4_f(); -extern "C" void execCdoor__12daObjCdoor_cFv(); -extern "C" void execWgate__12daObjCdoor_cFv(); -extern "C" void init_modeWait__12daObjCdoor_cFv(); -extern "C" void modeWait__12daObjCdoor_cFv(); -extern "C" void init_modeOpen__12daObjCdoor_cFv(); -extern "C" void modeOpen__12daObjCdoor_cFv(); -extern "C" void init_modeClose__12daObjCdoor_cFv(); -extern "C" void modeClose__12daObjCdoor_cFv(); -extern "C" static void daObjCdoor_Execute__FP12daObjCdoor_c(); -extern "C" void event_proc_call__12daObjCdoor_cFv(); -extern "C" void actionWait__12daObjCdoor_cFv(); -extern "C" void actionOrderEvent__12daObjCdoor_cFv(); -extern "C" void actionEvent__12daObjCdoor_cFv(); -extern "C" void actionDead__12daObjCdoor_cFv(); -extern "C" void Draw__12daObjCdoor_cFv(); -extern "C" static void daObjCdoor_Draw__FP12daObjCdoor_c(); -extern "C" extern char const* const d_a_obj_cdoor__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb(); -extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); -extern "C" void fpcSch_JudgeByID__FPvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool Create__16dBgS_MoveBgActorFv(); -extern "C" bool Delete__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void ForceLockOn__9dCamera_cFP10fopAc_ac_c(); -extern "C" void ForceLockOff__9dCamera_cFP10fopAc_ac_c(); -extern "C" void dCam_getBody__Fv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void setHyrulSewerOpen__10Z2EnvSeMgrFb(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern void* __vt__16dBgS_MoveBgActor[10]; -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 g_mEnvSeMgr[780]; -extern "C" extern u8 j3dSys[284]; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" extern u8 struct_80BC7EB8[4]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80BC7D18-80BC7D20 000000 0008+00 2/2 0/0 0/0 .rodata l_bmdIdx */ -SECTION_RODATA static u8 const l_bmdIdx[8] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, -}; -COMPILER_STRIP_GATE(0x80BC7D18, &l_bmdIdx); - -/* 80BC7D20-80BC7D28 000008 0008+00 1/1 0/0 0/0 .rodata l_dzbIdx */ -SECTION_RODATA static u8 const l_dzbIdx[8] = { - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0C, -}; -COMPILER_STRIP_GATE(0x80BC7D20, &l_dzbIdx); - -/* 80BC7D28-80BC7D30 000010 0008+00 1/1 0/0 0/0 .rodata l_attentionOffsetY */ -SECTION_RODATA static u8 const l_attentionOffsetY[8] = { - 0x42, 0x96, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80BC7D28, &l_attentionOffsetY); - -/* 80BC7D30-80BC7D38 000018 0004+04 5/6 0/0 0/0 .rodata @3783 */ -SECTION_RODATA static f32 const lit_3783[1 + 1 /* padding */] = { - 1.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80BC7D30, &lit_3783); - -/* 80BC7D48-80BC7D48 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80BC7D48 = "Cdoor"; -SECTION_DEAD static char const* const stringBase_80BC7D4E = "J_Suimon"; -#pragma pop +#include "rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "f_op/f_op_actor_mng.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80BC7D58-80BC7D64 000000 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80BC7D64-80BC7D78 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 */] = { +static u32 lit_1787[1 + 4 /* padding */] = { 0x02000201, /* padding */ 0x40080000, @@ -278,294 +24,208 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { 0x3FE00000, 0x00000000, }; -#pragma pop /* 80BC7D78-80BC7D80 -00001 0008+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName[2] = { - (void*)&d_a_obj_cdoor__stringBase0, - (void*)(((char*)&d_a_obj_cdoor__stringBase0) + 0x6), +static char* l_arcName[2] = { + "Cdoor", + "J_Suimon", }; -/* 80BC6DB8-80BC6EF0 000078 0138+00 1/0 0/0 0/0 .text CreateHeap__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/CreateHeap__12daObjCdoor_cFv.s" -} -#pragma pop +/* 80BC7D18-80BC7D20 000000 0008+00 2/2 0/0 0/0 .rodata l_bmdIdx */ +static int const l_bmdIdx[2] = {4, 9}; -/* 80BC6EF0-80BC6F30 0001B0 0040+00 2/2 0/0 0/0 .text daObjCdoor_searchChain__FP10fopAc_ac_cPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCdoor_searchChain(fopAc_ac_c* param_0, void* param_1) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_searchChain__FP10fopAc_ac_cPv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80BC7D38-80BC7D40 000020 0008+00 3/3 0/0 0/0 .rodata @3909 */ -SECTION_RODATA static u8 const lit_3909[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80BC7D38, &lit_3909); +/* 80BC7D20-80BC7D28 000008 0008+00 1/1 0/0 0/0 .rodata l_dzbIdx */ +static int const l_dzbIdx[2] = {7, 12}; /* 80BC7D80-80BC7D88 000028 0008+00 2/2 0/0 0/0 .data l_moveOffsetY */ -SECTION_DATA static u8 l_moveOffsetY[8] = { - 0x43, 0x7A, 0x00, 0x00, 0x43, 0x66, 0x00, 0x00, -}; +static f32 l_moveOffsetY[2] = {250.0f, 230.0f}; -/* 80BC7D88-80BC7D94 -00001 000C+00 0/1 0/0 0/0 .data @4020 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4020[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWait__12daObjCdoor_cFv, -}; -#pragma pop +/* 80BC7D28-80BC7D30 000010 0008+00 1/1 0/0 0/0 .rodata l_attentionOffsetY */ +static f32 const l_attentionOffsetY[2] = {75.0f, 75.0f}; -/* 80BC7D94-80BC7DA0 -00001 000C+00 0/1 0/0 0/0 .data @4021 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4021[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeOpen__12daObjCdoor_cFv, -}; -#pragma pop +/* 80BC6DB8-80BC6EF0 000078 0138+00 1/0 0/0 0/0 .text CreateHeap__12daObjCdoor_cFv */ +int daObjCdoor_c::CreateHeap() { + J3DModelData* model_data = + (J3DModelData*)dComIfG_getObjectRes(l_arcName[mType], l_bmdIdx[mType]); + mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + if (mType == 1) { + J3DAnmTransform* open_anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName[mType], 6); + mOpenAnm.init(open_anm, 1, 0, 1.0f, 0, -1, false); + J3DAnmTransform* close_anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName[mType], 5); + mCloseAnm.init(close_anm, 1, 0, 1.0f, 0, -1, false); + } + return 1; +} -/* 80BC7DA0-80BC7DAC -00001 000C+00 0/1 0/0 0/0 .data @4022 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4022[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeClose__12daObjCdoor_cFv, -}; -#pragma pop - -/* 80BC7DAC-80BC7DD0 000054 0024+00 0/1 0/0 0/0 .data mode_proc$4019 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 mode_proc[36] = { - 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 - -/* 80BC7DD0-80BC7DDC -00001 000C+00 0/1 0/0 0/0 .data @4114 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4114[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionWait__12daObjCdoor_cFv, -}; -#pragma pop - -/* 80BC7DDC-80BC7DE8 -00001 000C+00 0/1 0/0 0/0 .data @4115 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4115[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionOrderEvent__12daObjCdoor_cFv, -}; -#pragma pop - -/* 80BC7DE8-80BC7DF4 -00001 000C+00 0/1 0/0 0/0 .data @4116 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4116[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionEvent__12daObjCdoor_cFv, -}; -#pragma pop - -/* 80BC7DF4-80BC7E00 -00001 000C+00 0/1 0/0 0/0 .data @4117 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4117[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionDead__12daObjCdoor_cFv, -}; -#pragma pop - -/* 80BC7E00-80BC7E30 0000A8 0030+00 0/1 0/0 0/0 .data l_func$4113 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_func[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 - -/* 80BC7E30-80BC7E50 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCdoor_Method */ -SECTION_DATA static void* l_daObjCdoor_Method[8] = { - (void*)daObjCdoor_Create__FP10fopAc_ac_c, - (void*)daObjCdoor_Delete__FP12daObjCdoor_c, - (void*)daObjCdoor_Execute__FP12daObjCdoor_c, - (void*)NULL, - (void*)daObjCdoor_Draw__FP12daObjCdoor_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80BC7E50-80BC7E80 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Cdoor */ -SECTION_DATA extern void* g_profile_Obj_Cdoor[12] = { - (void*)0xFFFFFFFD, (void*)0x0003FFFD, - (void*)0x00340000, (void*)&g_fpcLf_Method, - (void*)0x000005FC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x00F50000, (void*)&l_daObjCdoor_Method, - (void*)0x00040100, (void*)0x030E0000, -}; - -/* 80BC7E80-80BC7EAC 000128 002C+00 2/2 0/0 0/0 .data __vt__12daObjCdoor_c */ -SECTION_DATA extern void* __vt__12daObjCdoor_c[11] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__12daObjCdoor_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__12daObjCdoor_cFPPA3_A4_f, - (void*)Draw__12daObjCdoor_cFv, - (void*)Delete__16dBgS_MoveBgActorFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, - (void*)__dt__12daObjCdoor_cFv, -}; - -/* 80BC7EAC-80BC7EB8 000154 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; +/* 80BC6EF0-80BC6F30 0001B0 0040+00 2/2 0/0 0/0 .text daObjCdoor_searchChain__FP10fopAc_ac_cPv */ +static void* daObjCdoor_searchChain(fopAc_ac_c* i_actor, void* i_this) { + daObjCdoor_c* _this = static_cast(i_this); + if (fopAcM_GetName(i_actor) == PROC_Obj_Wchain) { + daObjWchain_c* chain = static_cast(i_actor); + if (chain->getSwitchNum() == _this->getSwitchNum()) { + _this->setChainID(fopAcM_GetID(chain)); + return chain; + } + } + return NULL; +} /* 80BC6F30-80BC7234 0001F0 0304+00 1/1 0/0 0/0 .text create__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/create__12daObjCdoor_cFv.s" +cPhs__Step daObjCdoor_c::create() { + fopAcM_SetupActor(this, daObjCdoor_c); + mType = (fopAcM_GetParam(this) >> 8) & 0xf; + cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName[mType]); + if (step == cPhs_COMPLEATE_e) { + step = (cPhs__Step)MoveBGCreate(l_arcName[mType], l_dzbIdx[mType], NULL, 0xc00, NULL); + if (step == cPhs_ERROR_e) { + return cPhs_ERROR_e; + } + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + mTevStr.mRoomNo = dStage_roomControl_c::mStayNo; + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + mSw = fopAcM_GetParam(this) & 0xff; + mChainID = -1; + mEnd = false; + if (mType == 1) { + mIsOpen = i_fopAcM_isSwitch(this, mSw); + mMapToolID = (fopAcM_GetParam(this) >> 0xc) & 0xff; + mEventID = i_dComIfGp_getEventManager().getEventIdx(this, mMapToolID); + setAction(ACT_WAIT); + if (mMapToolID == 0xff) { + setAction(ACT_DEAD); + } + if (mIsOpen) { + mOpenAnm.setFrame(mOpenAnm.getEndFrame()); + mOpenAnm.play(); + } else { + mCloseAnm.setFrame(mOpenAnm.getEndFrame()); + mCloseAnm.play(); + } + init_modeWait(); + } else { + if (i_fopAcM_isSwitch(this, mSw)) { + mEnd = 1; + current.pos.y += l_moveOffsetY[mType]; + } else { + fopAcIt_Judge((fopAcIt_JudgeFunc)daObjCdoor_searchChain, this); + } + } + mAttentionInfo.mPosition.set( + current.pos.x, + current.pos.y + l_attentionOffsetY[mType], + current.pos.z + ); + mEyePos = mAttentionInfo.mPosition; + setMatrix(); + } + return step; } -#pragma pop - -/* 80BC7234-80BC727C 0004F4 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12J3DFrameCtrlFv.s" -} -#pragma pop /* 80BC727C-80BC729C 00053C 0020+00 1/0 0/0 0/0 .text daObjCdoor_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCdoor_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Create__FP10fopAc_ac_c.s" +static cPhs__Step daObjCdoor_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 80BC729C-80BC7378 00055C 00DC+00 1/0 0/0 0/0 .text __dt__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daObjCdoor_c::~daObjCdoor_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/__dt__12daObjCdoor_cFv.s" +daObjCdoor_c::~daObjCdoor_c() { + dComIfG_resDelete(&mPhaseReq, l_arcName[mType]); } -#pragma pop /* 80BC7378-80BC73C0 000638 0048+00 1/0 0/0 0/0 .text daObjCdoor_Delete__FP12daObjCdoor_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCdoor_Delete(daObjCdoor_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Delete__FP12daObjCdoor_c.s" +static int daObjCdoor_Delete(daObjCdoor_c* i_this) { + i_this->MoveBGDelete(); + i_this->~daObjCdoor_c(); + return 1; } -#pragma pop /* 80BC73C0-80BC7424 000680 0064+00 3/3 0/0 0/0 .text setMatrix__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::setMatrix() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/setMatrix__12daObjCdoor_cFv.s" +void daObjCdoor_c::setMatrix() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); } -#pragma pop /* 80BC7424-80BC7478 0006E4 0054+00 1/0 0/0 0/0 .text Execute__12daObjCdoor_cFPPA3_A4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::Execute(f32 (**param_0)[3][4]) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Execute__12daObjCdoor_cFPPA3_A4_f.s" +int daObjCdoor_c::Execute(Mtx** i_mtxP) { + *i_mtxP = &mpModel->getBaseTRMtx(); + switch (mType) { + case 0: + execCdoor(); + break; + case 1: + execWgate(); + break; + } + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 80BC7D40-80BC7D44 000028 0004+00 2/3 0/0 0/0 .rodata @4014 */ -SECTION_RODATA static f32 const lit_4014 = -1.0f; -COMPILER_STRIP_GATE(0x80BC7D40, &lit_4014); - -/* 80BC7D44-80BC7D48 00002C 0004+00 0/1 0/0 0/0 .rodata @4015 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4015 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x80BC7D44, &lit_4015); -#pragma pop /* 80BC7478-80BC7630 000738 01B8+00 1/1 0/0 0/0 .text execCdoor__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::execCdoor() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execCdoor__12daObjCdoor_cFv.s" +void daObjCdoor_c::execCdoor() { + if (!mEnd) { + if (mChainID == -1) { + fopAcIt_Judge((fopAcIt_JudgeFunc)daObjCdoor_searchChain, this); + } + if (mChainID != -1) { + daObjWchain_c* chain = static_cast(fopAcM_SearchByID(mChainID)); + if (chain != NULL) { + if (chain->getEndFlg()) { + mChainID = -1; + mEnd = true; + current.pos.y = orig.pos.y + l_moveOffsetY[mType]; + if (mCamLock) { + dCam_getBody()->ForceLockOff(this); + mCamLock = false; + } + fopAcM_seStartCurrent(this, Z2SE_OBJ_OPEN_CHAIN_SW_DOOR, 0); + } else { + current.pos.y = orig.pos.y + l_moveOffsetY[mType] * chain->getMoveDisRate(); + if (chain->checkRideFlg()) { + dCam_getBody()->ForceLockOn(this); + mCamLock = true; + } else if (mCamLock) { + dCam_getBody()->ForceLockOff(this); + mCamLock = false; + } + } + setMatrix(); + } + } + } } -#pragma pop /* 80BC7630-80BC775C 0008F0 012C+00 1/1 0/0 0/0 .text execWgate__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::execWgate() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/execWgate__12daObjCdoor_cFv.s" +void daObjCdoor_c::execWgate() { + typedef void (daObjCdoor_c::*daObjCdoor_modeFunc)(); + static daObjCdoor_modeFunc mode_proc[3] = { + &modeWait, + &modeOpen, + &modeClose, + }; + u8 was_open = mIsOpen; + mIsOpen = i_fopAcM_isSwitch(this, mSw); + if (mIsOpen != was_open) { + if (mIsOpen) { + init_modeOpen(); + } else { + init_modeClose(); + } + mDoAud_setHyrulSewerOpen(was_open); + } + (this->*mode_proc[mMode])(); + setMatrix(); + event_proc_call(); } -#pragma pop /* 80BC775C-80BC7768 000A1C 000C+00 3/3 0/0 0/0 .text init_modeWait__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::init_modeWait() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeWait__12daObjCdoor_cFv.s" +void daObjCdoor_c::init_modeWait() { + mMode = MODE_WAIT; } -#pragma pop /* 80BC7768-80BC776C 000A28 0004+00 1/0 0/0 0/0 .text modeWait__12daObjCdoor_cFv */ void daObjCdoor_c::modeWait() { @@ -573,126 +233,133 @@ void daObjCdoor_c::modeWait() { } /* 80BC776C-80BC77BC 000A2C 0050+00 1/1 0/0 0/0 .text init_modeOpen__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::init_modeOpen() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeOpen__12daObjCdoor_cFv.s" +void daObjCdoor_c::init_modeOpen() { + mOpenAnm.reset(); + mMode = MODE_OPEN; } -#pragma pop /* 80BC77BC-80BC78B0 000A7C 00F4+00 1/0 0/0 0/0 .text modeOpen__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::modeOpen() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeOpen__12daObjCdoor_cFv.s" +void daObjCdoor_c::modeOpen() { + fopAcM_seStartCurrentLevel(this, Z2SE_OBJ_WATERGATE_MOVE, 0); + if (mOpenAnm.play()) { + fopAcM_seStartCurrent(this, Z2SE_OBJ_OPEN_CHAIN_SW_DOOR, 0); + init_modeWait(); + } } -#pragma pop /* 80BC78B0-80BC7900 000B70 0050+00 1/1 0/0 0/0 .text init_modeClose__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::init_modeClose() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/init_modeClose__12daObjCdoor_cFv.s" +void daObjCdoor_c::init_modeClose() { + mCloseAnm.reset(); + mMode = MODE_CLOSE; } -#pragma pop /* 80BC7900-80BC79F4 000BC0 00F4+00 1/0 0/0 0/0 .text modeClose__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::modeClose() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/modeClose__12daObjCdoor_cFv.s" +void daObjCdoor_c::modeClose() { + fopAcM_seStartCurrentLevel(this, Z2SE_OBJ_WATERGATE_MOVE, 0); + if (mCloseAnm.play()) { + fopAcM_seStartCurrent(this, Z2SE_OBJ_OPEN_CHAIN_SW_DOOR, 0); + init_modeWait(); + } } -#pragma pop /* 80BC79F4-80BC7A14 000CB4 0020+00 1/0 0/0 0/0 .text daObjCdoor_Execute__FP12daObjCdoor_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCdoor_Execute(daObjCdoor_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Execute__FP12daObjCdoor_c.s" +static int daObjCdoor_Execute(daObjCdoor_c* i_this) { + return i_this->MoveBGExecute(); } -#pragma pop /* 80BC7A14-80BC7AD0 000CD4 00BC+00 1/1 0/0 0/0 .text event_proc_call__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::event_proc_call() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/event_proc_call__12daObjCdoor_cFv.s" +void daObjCdoor_c::event_proc_call() { + typedef void (daObjCdoor_c::*daObjCdoor_eventFunc)(); + static daObjCdoor_eventFunc l_func[4] = { + &actionWait, + &actionOrderEvent, + &actionEvent, + &actionDead, + }; + (this->*l_func[mAction])(); } -#pragma pop /* 80BC7AD0-80BC7B34 000D90 0064+00 1/0 0/0 0/0 .text actionWait__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::actionWait() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionWait__12daObjCdoor_cFv.s" +void daObjCdoor_c::actionWait() { + if (mMapToolID != 0xff) { + setAction(ACT_ORDER_EVENT); + fopAcM_orderOtherEventId(this, mEventID, mMapToolID, 0xffff, 0, 1); + mEvtInfo.i_onCondition(2); + } } -#pragma pop /* 80BC7B34-80BC7B9C 000DF4 0068+00 1/0 0/0 0/0 .text actionOrderEvent__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::actionOrderEvent() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionOrderEvent__12daObjCdoor_cFv.s" +void daObjCdoor_c::actionOrderEvent() { + if (mEvtInfo.i_checkCommandDemoAccrpt()) { + setAction(ACT_EVENT); + } else { + fopAcM_orderOtherEventId(this, mEventID, mMapToolID, 0xffff, 0, 1); + mEvtInfo.i_onCondition(2); + } } -#pragma pop /* 80BC7B9C-80BC7BF8 000E5C 005C+00 1/0 0/0 0/0 .text actionEvent__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::actionEvent() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionEvent__12daObjCdoor_cFv.s" +void daObjCdoor_c::actionEvent() { + if (dComIfGp_evmng_endCheck(mEventID)) { + setAction(ACT_DEAD); + i_dComIfGp_event_reset(); + } } -#pragma pop /* 80BC7BF8-80BC7C04 000EB8 000C+00 1/0 0/0 0/0 .text actionDead__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::actionDead() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/actionDead__12daObjCdoor_cFv.s" +void daObjCdoor_c::actionDead() { + setAction(ACT_WAIT); } -#pragma pop /* 80BC7C04-80BC7CE4 000EC4 00E0+00 1/0 0/0 0/0 .text Draw__12daObjCdoor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCdoor_c::Draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/Draw__12daObjCdoor_cFv.s" +int daObjCdoor_c::Draw() { + g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel->mModelData, &mTevStr); + if (mType == 1) { + J3DModelData* model_data = mpModel->getModelData(); + if (mIsOpen) { + mOpenAnm.entry(model_data); + } else { + mCloseAnm.entry(model_data); + } + } + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + return 1; } -#pragma pop /* 80BC7CE4-80BC7D10 000FA4 002C+00 1/0 0/0 0/0 .text daObjCdoor_Draw__FP12daObjCdoor_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCdoor_Draw(daObjCdoor_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_cdoor/d_a_obj_cdoor/daObjCdoor_Draw__FP12daObjCdoor_c.s" +static int daObjCdoor_Draw(daObjCdoor_c* i_this) { + return i_this->MoveBGDraw(); } -#pragma pop -/* 80BC7D48-80BC7D48 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80BC7E30-80BC7E50 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCdoor_Method */ +static actor_method_class l_daObjCdoor_Method = { + (process_method_func)daObjCdoor_Create, + (process_method_func)daObjCdoor_Delete, + (process_method_func)daObjCdoor_Execute, + (process_method_func)NULL, + (process_method_func)daObjCdoor_Draw, +}; + +/* 80BC7E50-80BC7E80 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Cdoor */ +extern actor_process_profile_definition g_profile_Obj_Cdoor = { + fpcLy_CURRENT_e, + 3, + fpcPi_CURRENT_e, + PROC_Obj_Cdoor, + &g_fpcLf_Method.mBase, + sizeof(daObjCdoor_c), + 0, + 0, + &g_fopAc_Method.base, + 0xF5, + &l_daObjCdoor_Method, + 0x40100, + fopAc_ENV_e, + fopAc_CULLBOX_CUSTOM_e, +}; diff --git a/rel/d/a/obj/d_a_obj_cdoor/unknown_translation_unit_bss.cpp b/rel/d/a/obj/d_a_obj_cdoor/unknown_translation_unit_bss.cpp deleted file mode 100644 index 2825a0a15d1..00000000000 --- a/rel/d/a/obj/d_a_obj_cdoor/unknown_translation_unit_bss.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: unknown_translation_unit_bss -// - -#include "rel/d/a/obj/d_a_obj_cdoor/unknown_translation_unit_bss.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" extern u8 struct_80BC7EB8[4]; - -// -// External References: -// - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80BC7EB8-80BC7EBC -00001 0004+00 0/0 2/2 0/0 .bss None */ -/* 80BC7EB8 0001+00 data_80BC7EB8 None */ -/* 80BC7EB9 0003+00 data_80BC7EB9 None */ -extern u8 struct_80BC7EB8[4]; -u8 struct_80BC7EB8[4]; diff --git a/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.cpp b/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.cpp index 0dd08a783d0..599db51aff1 100644 --- a/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.cpp +++ b/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.cpp @@ -4,122 +4,16 @@ // #include "rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h" +#include "SSystem/SComponent/c_math.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/J3DGraphBase/J3DDrawBuffer.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 "dol2asm.h" -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct csXyz { - /* 80D303D0 */ csXyz(); - /* 802673F4 */ csXyz(s16, s16, s16); - /* 80D30394 */ ~csXyz(); -}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B34 */ void operator-(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80266F48 */ void normalizeZP(); - /* 80267150 */ void atan2sY_XZ() const; - /* 80D303D4 */ cXyz(); - /* 80D303D8 */ ~cXyz(); - - static f32 Zero[3]; -}; - -struct mDoMtx_stack_c { - /* 8000CDD4 */ void transM(cXyz const&); - /* 8000CD9C */ void transM(f32, f32, f32); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct fopAcM_rc_c { - /* 8001DD1C */ void roofCheck(cXyz const*); - - static f32 mRoofY; -}; - -struct daObjWchain_shape_c { - /* 80D31418 */ void draw(); - /* 80D318C0 */ ~daObjWchain_shape_c(); -}; - -struct daObjWchain_c { - /* 80D2FEF8 */ void createHeap(); - /* 80D2FFBC */ void create(); - /* 80D30434 */ ~daObjWchain_c(); - /* 80D30534 */ void setMatrix(); - /* 80D305E4 */ void getChainAngleZ(cXyz*, int); - /* 80D3080C */ void setChainPos(); - /* 80D310AC */ void execute(); - /* 80D31810 */ void draw(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct JAISoundID {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); - /* 802AC50C */ void seStartLevel(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 J3DShape { - /* 80315300 */ void loadPreDrawSetting() const; - - static u8 sOldVcdVatCmd[4]; -}; - -struct J3DPacket; -struct J3DDrawBuffer { - /* 8032548C */ void entryImm(J3DPacket*, u16); -}; - -struct J3DPacket { - /* 80312750 */ bool entry(J3DDrawBuffer*); -}; - -struct J3DModel {}; - // // Forward References: // @@ -191,37 +85,17 @@ extern "C" void __dl__FPv(); extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer(); extern "C" void loadPreDrawSetting__8J3DShapeCFv(); extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECScale(); -extern "C" void PSVECSquareMag(); -extern "C" void GXLoadLightObjImm(); -extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXLoadNrmMtxImm(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void _savegpr_20(); extern "C" void _savegpr_22(); extern "C" void _restgpr_20(); extern "C" void _restgpr_22(); -extern "C" void abs(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__9J3DPacket[5]; 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" f32 Zero__4cXyz[3]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 g_whiteColor; -extern "C" extern u32 __float_nan; extern "C" f32 mRoofY__11fopAcM_rc_c; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; @@ -229,40 +103,37 @@ extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; // Declarations: // -/* ############################################################################################## */ /* 80D31924-80D3192C 000000 0007+01 8/8 0/0 0/0 .rodata l_arcName */ -SECTION_RODATA static u8 const l_arcName[7 + 1 /* padding */] = { - 0x57, - 0x63, - 0x68, - 0x61, - 0x69, - 0x6E, - 0x00, - /* padding */ - 0x00, -}; -COMPILER_STRIP_GATE(0x80D31924, &l_arcName); +static char const l_arcName[7] = "Wchain"; /* 80D2FEF8-80D2FF9C 000078 00A4+00 1/1 0/0 0/0 .text createHeap__13daObjWchain_cFv */ +#ifdef NONMATCHING +// matches once daObjWchain_shape_c inheritance is resolved +int daObjWchain_c::createHeap() { + J3DModelData* handle_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4); + mpHandleModel = mDoExt_J3DModel__create(handle_model_data, 0x80000, 0x11000084); + if (mpHandleModel == NULL) { + return 0; + } + mpChainModelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 3); + mShape.setUserArea((u32)this); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjWchain_c::createHeap() { +asm int daObjWchain_c::createHeap() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/createHeap__13daObjWchain_cFv.s" } #pragma pop +#endif /* 80D2FF9C-80D2FFBC 00011C 0020+00 1/1 0/0 0/0 .text daObjWchain_createHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWchain_createHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_createHeap__FP10fopAc_ac_c.s" +static int daObjWchain_createHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->createHeap(); } -#pragma pop /* ############################################################################################## */ /* 80D3192C-80D31930 000008 0004+00 0/1 0/0 0/0 .rodata @3744 */ @@ -409,32 +280,90 @@ SECTION_DATA extern void* __vt__19daObjWchain_shape_c[5] = { }; /* 80D2FFBC-80D30394 00013C 03D8+00 1/1 0/0 0/0 .text create__13daObjWchain_cFv */ +#ifdef NONMATCHING +// matches once daObjWchain_shape_c inheritance is resolved +cPhs__Step daObjWchain_c::create() { + fopAcM_SetupActor(this, daObjWchain_c); + mSw = fopAcM_GetParam(this) & 0xff; + cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName); + if (step == cPhs_COMPLEATE_e) { + mRepeatable = (fopAcM_GetParam(this) >> 8) & 0xf; + if (mRepeatable == 0xf) { + mRepeatable = 0; + } + if (!fopAcM_entrySolidHeap(this, daObjWchain_createHeap, 0x820)) { + return cPhs_ERROR_e; + } + mTevStr.mRoomNo = dStage_roomControl_c::mStayNo; + mAttentionInfo.mPosition = current.pos; + mEyePos = mAttentionInfo.mPosition; + mAttentionInfo.field_0x0[0] = 0x1c; + fopAcM_SetMtx(this, mpHandleModel->getBaseTRMtx()); + fopAcM_SetMin(this, -200.0f, -45.0f, -200.0f); + fopAcM_SetMax(this, 200.0f, 800.0f, 200.0f); + mTopPos = current.pos; + current.pos.y += 53.75f; + mRoofPos.set(current.pos.x, current.pos.y + 280.0f - 100.0f, current.pos.z); + mRealRoofY = mRoofPos.y + 250.0f; + mInitOutLength = mRoofPos.y - orig.pos.y; + if (!mRepeatable && i_fopAcM_isSwitch(this, mSw)) { + current.pos.y -= 100.0f; + mEnd = true; + mPullLength = 100.0f; + field_0x7a8 = 600.0f; + } else { + mPullLength = 0.0f; + } + shape_angle.x = 0x4000; + mGravity = -7.0f; + cXyz* chain_pos = &mChainPos[0xf]; + cXyz* chain_speed = &mChainSpeed[0xf]; + csXyz* chain_angle = &mChainAngle[0xf]; + s16 ang_z = cM_rndFX(2048.0f) + 16384.0f; + f32 pos_y = current.pos.y; + for (int i = 0xf; i >= 0; chain_pos--, chain_speed--, chain_angle--, i--) { + chain_pos->set(current.pos.x, pos_y, current.pos.z); + *chain_speed = cXyz::Zero; + chain_angle->set(0x4000, shape_angle.y, ang_z); + ang_z += cM_rndFX(2048.0f) + 16384.0f; + pos_y += 17.5f; + } + speed = cXyz::Zero; + setMatrix(); + } + return step; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjWchain_c::create() { +asm cPhs__Step daObjWchain_c::create() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/create__13daObjWchain_cFv.s" } #pragma pop +#endif /* 80D30394-80D303D0 000514 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm csXyz::~csXyz() { +// asm csXyz::~csXyz() { +extern "C" asm void __dt__5csXyzFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/__dt__5csXyzFv.s" } #pragma pop /* 80D303D0-80D303D4 000550 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -csXyz::csXyz() { +// csXyz::csXyz() { +extern "C" void __ct__5csXyzFv() { /* empty function */ } /* 80D303D4-80D303D8 000554 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { +// cXyz::cXyz() { +extern "C" void __ct__4cXyzFv() { /* empty function */ } @@ -442,7 +371,8 @@ cXyz::cXyz() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/__dt__4cXyzFv.s" } @@ -450,16 +380,17 @@ asm cXyz::~cXyz() { /* 80D30414-80D30434 000594 0020+00 1/0 0/0 0/0 .text daObjWchain_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWchain_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Create__FP10fopAc_ac_c.s" +static cPhs__Step daObjWchain_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 80D30434-80D3050C 0005B4 00D8+00 1/1 0/0 0/0 .text __dt__13daObjWchain_cFv */ +#ifdef NONMATCHING +// matches once daObjWchain_shape_c inheritance is resolved +daObjWchain_c::~daObjWchain_c() { + dComIfG_resDelete(&mPhaseReq, l_arcName); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -468,16 +399,13 @@ asm daObjWchain_c::~daObjWchain_c() { #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/__dt__13daObjWchain_cFv.s" } #pragma pop +#endif /* 80D3050C-80D30534 00068C 0028+00 1/0 0/0 0/0 .text daObjWchain_Delete__FP13daObjWchain_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWchain_Delete(daObjWchain_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Delete__FP13daObjWchain_c.s" +static int daObjWchain_Delete(daObjWchain_c* i_this) { + i_this->~daObjWchain_c(); + return 1; } -#pragma pop /* ############################################################################################## */ /* 80D3196C-80D31978 000048 000C+00 0/1 0/0 0/0 .rodata eyeOffset$3803 */ @@ -497,6 +425,18 @@ COMPILER_STRIP_GATE(0x80D31978, &lit_3819); #pragma pop /* 80D30534-80D305E4 0006B4 00B0+00 2/2 0/0 0/0 .text setMatrix__13daObjWchain_cFv */ +#ifdef NONMATCHING +// matches with literals +void daObjWchain_c::setMatrix() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZrotM(mHandleRotation); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); + mDoMtx_stack_c::transM(0.0f, 0.0f, 8.75f); + mpHandleModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); + static Vec const eyeOffset = {0.0f, 0.0f, 53.75f}; + mDoMtx_stack_c::multVec(&eyeOffset, &mEyePos); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -505,6 +445,7 @@ asm void daObjWchain_c::setMatrix() { #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/setMatrix__13daObjWchain_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80D3197C-80D31984 000058 0008+00 0/2 0/0 0/0 .rodata @3863 */ @@ -549,14 +490,31 @@ COMPILER_STRIP_GATE(0x80D31998, &lit_3867); #pragma pop /* 80D305E4-80D3080C 000764 0228+00 1/1 0/0 0/0 .text getChainAngleZ__13daObjWchain_cFP4cXyzi */ +#ifdef NONMATCHING +// matches with literals +s16 daObjWchain_c::getChainAngleZ(cXyz* param_0, int param_1) { + cXyz vec(param_0->x, 0.0f, param_0->z); + f32 len = vec.abs(); + if (param_1 > 0x5000) { + return -len * (cM_rndF(0.5f) + 0.5f) * 512.0f; + } else if (param_1 < 0x3000) { + return len * (cM_rndF(0.5f) + 0.5f) * 512.0f; + } else if (cM_rnd() < 0.5f) { + return -len * (cM_rndF(0.5f) + 0.5f) * 512.0f; + } else { + return len * (cM_rndF(0.5f) + 0.5f) * 512.0f; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjWchain_c::getChainAngleZ(cXyz* param_0, int param_1) { +asm s16 daObjWchain_c::getChainAngleZ(cXyz* param_0, int param_1) { nofralloc #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/getChainAngleZ__13daObjWchain_cFP4cXyzi.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80D3199C-80D319A8 000078 000C+00 0/1 0/0 0/0 .rodata currentOffset$3872 */ @@ -634,6 +592,119 @@ COMPILER_STRIP_GATE(0x80D319D0, &lit_4161); #pragma pop /* 80D3080C-80D310AC 00098C 08A0+00 1/1 0/0 0/0 .text setChainPos__13daObjWchain_cFv */ +#ifdef NONMATCHING +// regalloc, instruction ordering +void daObjWchain_c::setChainPos() { + cXyz prev_pos, vec1; + if (mRide) { + shape_angle.y = daPy_getLinkPlayerActorClass()->shape_angle.y; + shape_angle.z = 0; + prev_pos = mTopPos; + mTopPos = daPy_getLinkPlayerActorClass()->current.pos; + speed = (mTopPos - prev_pos) * 0.75f; + vec1 = mTopPos - mRoofPos; + mDoMtx_stack_c::YrotS(-shape_angle.y); + mDoMtx_stack_c::multVec(&vec1, &vec1); + shape_angle.x = cM_atan2s(-vec1.z, -vec1.y) + 0x4000; + mHandleRotation = cM_atan2s(vec1.x, JMAFastSqrt(vec1.y * vec1.y + vec1.z * vec1.z)); + mDoMtx_stack_c::transS(mTopPos.x, mTopPos.y, mTopPos.z); + mDoMtx_stack_c::ZrotM(mHandleRotation); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); + static Vec const currentOffset = {0.0f, 0.0f, -53.75f}; + mDoMtx_stack_c::multVec(¤tOffset, ¤t.pos); + cXyz* chain_pos = &mChainPos[0xf]; + csXyz* chain_angle = &mChainAngle[0xf]; + cXyz* chain_speed = &mChainSpeed[0xf]; + s16* chain_rotation = &mChainRotation[0xf]; + prev_pos = current.pos; + int svar7 = shape_angle.z; + for (int i = 0xf; i >= 0; i--, chain_pos--, chain_angle--, chain_speed--, chain_rotation--) { + chain_angle->z += getChainAngleZ(chain_speed, abs((s16)(chain_angle->z - svar7))); + *chain_speed = (prev_pos - *chain_pos) * 0.75; + *chain_pos = prev_pos; + chain_angle->x = shape_angle.x; + *chain_rotation = mHandleRotation; + mDoMtx_stack_c::transS(prev_pos.x, prev_pos.y, prev_pos.z); + mDoMtx_stack_c::ZrotM(*chain_rotation); + mDoMtx_stack_c::ZXYrotM(chain_angle->x, shape_angle.y, chain_angle->z); + static Vec const chainOffset = {0.0f, 0.0f, -17.5f}; + mDoMtx_stack_c::multVec(&chainOffset, &prev_pos); + svar7 = chain_angle->z; + } + } else { + if (mReset) { + if (cLib_chaseF(&mPullLength, 0.0f, 1.0f)) { + mReset = false; + mEnd = false; + } + } else if (mRepeatable || !i_fopAcM_isSwitch(this, mSw)) { + cLib_chaseF(&mPullLength, 0.0f, 5.0f); + } else { + mPullLength = 100.0f; + mEnd = true; + if (!mRepeatable) { + cLib_chaseF(&field_0x7a8, 600.0f, 30.0f); + } + } + f32 fvar2 = mInitOutLength + mPullLength - 53.75f; + int local_68 = fvar2 * (1.0f / 17.5f); + int ivar5 = local_68 <= 0xf ? local_68 + 1 : 0x10; + int chain_no = 0x10 - ivar5; + cXyz* chain_pos = &mChainPos[chain_no]; + csXyz* chain_angle = &mChainAngle[chain_no]; + s16* chain_rotation = &mChainRotation[chain_no]; + chain_pos->set( + mRoofPos.x, + field_0x7a8 + (mRoofPos.y - (17.5f - (ivar5 * 17.5f - fvar2))), + mRoofPos.z + ); + chain_angle->x = 0x4000; + *chain_rotation = 0; + chain_pos = mChainPos + 1 + chain_no; + chain_angle++; + cXyz* chain_speed = mChainSpeed + 1 + chain_no; + chain_rotation++; + mDoMtx_stack_c::YrotS(-shape_angle.y); + f32 prob = 0.2f; + cXyz local_90; + if (!mEnd && cM_rnd() < prob) { + f32 ang = cM_rnd() * 6.283185f; + local_90.set(cM_fsin(ang), 0.0f, cM_fcos(ang)); + } else { + local_90 = cXyz::Zero; + } + for (int i = chain_no + 1; i < 0x10; i++, chain_pos++, chain_angle++, chain_speed++, chain_rotation++) { + prev_pos = *chain_pos; + vec1 = *chain_pos - chain_pos[-1]; + if (chain_speed->abs2XZ() < 0.04f && cM_rnd() < prob) { + vec1 += local_90; + prob *= 0.5f; + } + vec1.y += mGravity; + vec1 += *chain_speed; + chain_angle->z += getChainAngleZ(chain_speed, abs((s16)(chain_angle->z - chain_angle[-1].z))); + vec1.normalizeZP(); + *chain_pos = chain_pos[-1] + vec1 * 17.5f; + *chain_speed = (*chain_pos - prev_pos) * 0.75f; + mDoMtx_stack_c::multVec(&vec1, &vec1); + chain_angle->x = cM_atan2s(-vec1.z, -vec1.y) + 0x4000; + *chain_rotation = cM_atan2s(vec1.x, JMAFastSqrt(vec1.y * vec1.y + vec1.z * vec1.z)); + } + current.pos = mChainPos[0xf]; + shape_angle.z += getChainAngleZ(&speed, abs((s16)(shape_angle.z - mChainAngle[0xf].z))); + prev_pos = mTopPos; + vec1 = mTopPos - current.pos; + vec1.y += mGravity; + vec1 += speed; + vec1.normalizeZP(); + mTopPos = current.pos + vec1 * 53.75f; + speed = (mTopPos - prev_pos) * 0.75f; + mDoMtx_stack_c::multVec(&vec1, &vec1); + shape_angle.x = cM_atan2s(-vec1.z, -vec1.y) + 0x4000; + mHandleRotation = cM_atan2s(vec1.x, JMAFastSqrt(vec1.y * vec1.y + vec1.z * vec1.z)); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -642,6 +713,7 @@ asm void daObjWchain_c::setChainPos() { #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/setChainPos__13daObjWchain_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80D319D4-80D319D8 0000B0 0004+00 0/1 0/0 0/0 .rodata @4252 */ @@ -666,24 +738,76 @@ COMPILER_STRIP_GATE(0x80D319DC, &lit_4254); #pragma pop /* 80D310AC-80D313F8 00122C 034C+00 1/1 0/0 0/0 .text execute__13daObjWchain_cFv */ +#ifdef NONMATCHING +// matches with literals +int daObjWchain_c::execute() { + if (!mRidePrev && mRide) { + fopAcM_seStartCurrent(this, Z2SE_OBJ_GNAW_CHAIN_SW, 0); + } else if (mRidePrev && !mRide) { + fopAcM_seStartCurrent(this, Z2SE_OBJ_GNAW_CHAIN_SW, 0); + } + + if (!mRide) { + mDown = false; + } + + if (fopAcM_rc_c::roofCheck(&orig.pos)) { + mRealRoofY = fopAcM_rc_c::getRoofY(); + if (mRoofPos.y > mRealRoofY) { + mRoofPos.y = mRealRoofY; + mInitOutLength = mRoofPos.y - orig.pos.y; + } + mRealRoofY += 250.0f; + } + + setChainPos(); + + if (daPy_py_c::i_checkNowWolf() && !mRide && mPullLength < 0.1f) { + mAttentionInfo.mFlags |= 1; + } else { + mAttentionInfo.mFlags &= ~1; + } + mAttentionInfo.mPosition = current.pos; + mAttentionInfo.mPosition.y += 150.0f; + + setMatrix(); + + if (mNowSwitch) { + fopAcM_seStartCurrent(this, Z2SE_OBJ_STOP_CHAIN_SW, 0); + mNowSwitch = false; + if (mRepeatable) { + mReset = true; + if (i_fopAcM_isSwitch(this, mSw)) { + i_fopAcM_offSwitch(this, mSw); + } else { + i_fopAcM_onSwitch(this, mSw); + } + } else { + i_fopAcM_onSwitch(this, mSw); + } + field_0x77e = 20; + } else if (mRide && !mDown) { + fopAcM_seStartCurrentLevel(this, Z2SE_OBJ_PULLDOWN_CHAIN_SW, 0); + } + + mRidePrev = mRide; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjWchain_c::execute() { +asm int daObjWchain_c::execute() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/execute__13daObjWchain_cFv.s" } #pragma pop +#endif /* 80D313F8-80D31418 001578 0020+00 1/0 0/0 0/0 .text daObjWchain_Execute__FP13daObjWchain_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWchain_Execute(daObjWchain_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Execute__FP13daObjWchain_c.s" +static int daObjWchain_Execute(daObjWchain_c* i_this) { + return i_this->execute(); } -#pragma pop /* ############################################################################################## */ /* 80D319E0-80D319E4 0000BC 0004+00 0/1 0/0 0/0 .rodata @4364 */ @@ -694,6 +818,65 @@ COMPILER_STRIP_GATE(0x80D319E0, &lit_4364); #pragma pop /* 80D31418-80D31810 001598 03F8+00 1/0 0/0 0/0 .text draw__19daObjWchain_shape_cFv */ +#ifdef NONMATCHING +// matches with literals +void daObjWchain_shape_c::draw() { + daObjWchain_c* chain = (daObjWchain_c*)getUserArea(); + cXyz* pos = chain->getChainPos(); + csXyz* angle = chain->getChainAngle(); + s16* rotation = chain->getChainAngleZ(); + J3DModelData* model_data = chain->getChainModelData(); + J3DMaterial* material = model_data->getMaterialNodePointer(0); + dKy_tevstr_c& tevstr = chain->mTevStr; + j3dSys.setVtxPos(model_data->getVtxPosArray()); + j3dSys.setVtxNrm(model_data->getVtxNrmArray()); + j3dSys.setVtxCol(model_data->getVtxColorArray(0)); + J3DShape::resetVcdVatCache(); + material->loadSharedDL(); + material->getShape()->loadPreDrawSetting(); + GXColor amb_color; + amb_color.r = tevstr.mColorC0.r; + amb_color.g = tevstr.mColorC0.g; + amb_color.b = tevstr.mColorC0.b; + amb_color.a = tevstr.mColorC0.a; + GXSetChanAmbColor(GX_COLOR0A0, amb_color); + GXSetChanMatColor(GX_COLOR0A0, g_whiteColor); + dKy_setLight_again(); + dKy_GxFog_tevstr_set(&tevstr); + GXLoadLightObjImm(&tevstr.mLightObj.mLightObj, GX_LIGHT0); + for (int i = 0; i < 0x10; pos++, angle++, rotation++, i++) { + mDoMtx_stack_c::copy(j3dSys.getViewMtx()); + mDoMtx_stack_c::transM(*pos); + mDoMtx_stack_c::ZrotM(*rotation); + mDoMtx_stack_c::ZXYrotM(angle->x, chain->shape_angle.y, angle->z); + mDoMtx_stack_c::transM(0.0f, 0.0f, -8.75f); + GXLoadPosMtxImm(mDoMtx_stack_c::get(), 0); + GXLoadNrmMtxImm(mDoMtx_stack_c::get(), 0); + material->getShape()->simpleDrawCache(); + } + cXyz roof_pos(chain->getRoofPos().x, chain->getRealRoofY(), chain->getRoofPos().z); + cXyz delta = roof_pos - *chain->getChainPos(); + f32 len = delta.abs(); + if (len > 17.5f) { + cXyz pos = *chain->getChainPos(); + csXyz angle( + delta.atan2sY_XZ(), + chain->getChainAngle()->y, + chain->getChainAngle()->z + 0x3000 + ); + delta *= (17.5f / len); + for (; len > 17.5f; len -= 17.5f, pos += delta, angle.z += 0x3000) { + mDoMtx_stack_c::copy(j3dSys.getViewMtx()); + mDoMtx_stack_c::transM(pos); + mDoMtx_stack_c::ZXYrotM(angle); + mDoMtx_stack_c::transM(0.0f, 0.0f, 8.75f); + GXLoadPosMtxImm(mDoMtx_stack_c::get(), 0); + GXLoadNrmMtxImm(mDoMtx_stack_c::get(), 0); + material->getShape()->simpleDrawCache(); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -702,29 +885,38 @@ asm void daObjWchain_shape_c::draw() { #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/draw__19daObjWchain_shape_cFv.s" } #pragma pop +#endif /* 80D31810-80D318A0 001990 0090+00 1/1 0/0 0/0 .text draw__13daObjWchain_cFv */ +#ifdef NONMATCHING +// matches once daObjWchain_shape_c inheritance is resolved +int daObjWchain_c::draw() { + g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpHandleModel->mModelData, &mTevStr); + mDoExt_modelUpdateDL(mpHandleModel); + g_env_light.setLightTevColorType_MAJI(mpChainModelData, &mTevStr); + dComIfGd_getOpaList()->entryImm(&mShape, 0); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjWchain_c::draw() { +asm int daObjWchain_c::draw() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/draw__13daObjWchain_cFv.s" } #pragma pop +#endif /* 80D318A0-80D318C0 001A20 0020+00 1/0 0/0 0/0 .text daObjWchain_Draw__FP13daObjWchain_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWchain_Draw(daObjWchain_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/daObjWchain_Draw__FP13daObjWchain_c.s" +static int daObjWchain_Draw(daObjWchain_c* i_this) { + return i_this->draw(); } -#pragma pop /* 80D318C0-80D3191C 001A40 005C+00 1/0 0/0 0/0 .text __dt__19daObjWchain_shape_cFv */ +#ifndef NONMATCHING #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -733,3 +925,4 @@ asm daObjWchain_shape_c::~daObjWchain_shape_c() { #include "asm/rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain/__dt__19daObjWchain_shape_cFv.s" } #pragma pop +#endif diff --git a/src/d/a/d_a_alink_wolf.inc b/src/d/a/d_a_alink_wolf.inc index 631b8c9c2cd..bbc0159981c 100644 --- a/src/d/a/d_a_alink_wolf.inc +++ b/src/d/a/d_a_alink_wolf.inc @@ -18,6 +18,7 @@ #include "rel/d/a/npc/d_a_npc_tk/d_a_npc_tk.h" #include "rel/d/a/obj/d_a_obj_crope/d_a_obj_crope.h" #include "rel/d/a/obj/d_a_obj_smw_stone/d_a_obj_smw_stone.h" +#include "rel/d/a/obj/d_a_obj_wchain/d_a_obj_wchain.h" #include "rel/d/a/obj/d_a_obj_wind_stone/d_a_obj_wind_stone.h" #include "rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h" #include "rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h" @@ -7702,6 +7703,40 @@ int daAlink_c::procWolfChainReadyInit() { } /* 8013E2A8-8013E6C0 138BE8 0418+00 1/0 0/0 0/0 .text procWolfChainReady__9daAlink_cFv */ +#ifdef NONMATCHING +// matches with literals +int daAlink_c::procWolfChainReady() { + daObjWchain_c* chain = static_cast(field_0x280c.getActor()); + if (chain == NULL || mLinkAcch.ChkWallHit()) { + return procWolfFallInit(2, daAlinkHIO_wlAutoJump_c0::m.field_0x54); + } else if (mUnderFrameCtrl[0].getFrame() < 3.0f) { + s16 target_angle_y = cLib_targetAngleY(¤t.pos, &chain->getJumpAimPos()); + cLib_addCalcAngleS(&shape_angle.y, target_angle_y, 2, 0x2000, 0x800); + current.angle.y = shape_angle.y; + } else if (mProcVar3.field_0x300e.x == 0) { + shape_angle.y = cLib_targetAngleY(¤t.pos, &chain->getJumpAimPos()); + current.angle.y = shape_angle.y; + mProcVar3.field_0x300e.x = 1; + cXyz vec1 = chain->getJumpAimPos() - field_0x34e0; + f32 dist_xz = vec1.absXZ(); + f32 dist = vec1.abs(); + s16 angle = vec1.atan2sY_XZ(); + mProcVar2.field_0x300c = angle >> 1; + mNormalSpeed = dist_xz * 40.0f / dist + 1.0f; + mProcVar0.field_0x3008 = dist_xz / mNormalSpeed + 1.0f; + speed.y = (vec1.y - mGravity * 0.5f * mProcVar0.field_0x3008 * mProcVar0.field_0x3008) + / mProcVar0.field_0x3008; + } else { + mProcVar0.field_0x3008--; + if (chain->getJumpAimPos().abs2(field_0x34e0) < 10000.0f) { + procWolfChainWaitInit(); + } else if (mProcVar0.field_0x3008 == 0) { + procWolfFallInit(2, daAlinkHIO_wlAutoJump_c0::m.field_0x54); + } + } + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -7710,9 +7745,41 @@ asm int daAlink_c::procWolfChainReady() { #include "asm/d/a/d_a_alink/procWolfChainReady__9daAlink_cFv.s" } #pragma pop +#endif /* 8013E6C0-8013E80C 139000 014C+00 1/1 0/0 0/0 .text procWolfChainWaitInit__9daAlink_cFv */ +#ifdef NONMATCHING +// matches with literals +int daAlink_c::procWolfChainWaitInit() { + daObjWchain_c* chain = static_cast(field_0x280c.getActor()); + commonProcInit(PROC_WOLF_CHAIN_WAIT); + setSingleAnimeWolfParam(WANM_HANDLE_HANG, &daAlinkHIO_wlChain_c0::m.field_0x0); + mProcVar1.field_0x300a = 0; + chain->onRide(); + field_0x2f99 = 0x50; + current.pos = chain->getTopPos(); + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + speed.y = 0.0f; + mProcVar3.field_0x300e.y = 0; + mProcVar0.field_0x3008 = daAlinkHIO_wlChain_c0::m.field_0x3C + 20; + field_0x3478 = chain->getPullLength(); + current.angle.y = shape_angle.y; + if (mNormalSpeed > 30.0f) { + mNormalSpeed = 15.0f; + } else { + mNormalSpeed *= 0.5f; + } + field_0x37c8.set( + mNormalSpeed * cM_ssin(shape_angle.y), + 0.0f, + mNormalSpeed * cM_scos(shape_angle.y) + ); + mNormalSpeed = 0.0f; + voiceStart(Z2SE_WL_V_BITE_HANG); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -7721,8 +7788,90 @@ asm int daAlink_c::procWolfChainWaitInit() { #include "asm/d/a/d_a_alink/procWolfChainWaitInit__9daAlink_cFv.s" } #pragma pop +#endif /* 8013E80C-8013ED44 13914C 0538+00 1/0 0/0 0/0 .text procWolfChainWait__9daAlink_cFv */ +#ifdef NONMATCHING +// matches with literals +int daAlink_c::procWolfChainWait() { + daObjWchain_c* chain = static_cast(field_0x280c.getActor()); + if (chain == NULL || mProcVar0.field_0x3008 <= -daAlinkHIO_wlChain_c0::m.field_0x3E) { + mNormalSpeed = field_0x37c8.absXZ(); + current.angle.y = field_0x37c8.atan2sX_Z(); + i_onNoResetFlg2(FLG2_UNK_200); + return procWolfFallInit(2, daAlinkHIO_wlWallHang_c0::m.field_0x98); + } + + if (mProcVar3.field_0x300e.y == 0) { + if (mProcVar0.field_0x3008 > 20) { + mProcVar0.field_0x3008--; + } else { + field_0x3478 += daAlinkHIO_wlChain_c0::m.field_0x50; + if (field_0x3478 > chain->getSwitchOffset()) { + chain->onNowSwitchFlg(); + mProcVar3.field_0x300e.y = 1; + dComIfGp_getVibration().StartShock(7, 3, cXyz(0.0f, 1.0f, 0.0f)); + } + } + } else { + mProcVar0.field_0x3008--; + if (mProcVar0.field_0x3008 < 0) { + field_0x3478 = chain->getDownOffset(); + } else { + field_0x3478 = (chain->getSwitchOffset() + chain->getLastOffset() * 0.5f) + + (mProcVar0.field_0x3008 * 0.5f * 0.05f + 0.5f) + * chain->getLastOffset() * cM_scos(mProcVar0.field_0x3008 * 0x3000); + if (mProcVar0.field_0x3008 == 0) { + chain->onEndFlg(); + } + } + } + + cXyz vec1 = current.pos - chain->getRoofPos(); + if (checkInputOnR()) { + vec1.x += field_0x33a8 * cM_ssin(field_0x2fe2); + vec1.z += field_0x33a8 * cM_scos(field_0x2fe2); + } + vec1.y -= 15.0f; + vec1 += field_0x37c8; + vec1.normalizeZP(); + current.pos = chain->getRoofPos() + vec1 * (field_0x3478 + chain->getInitOutLength()); + field_0x37c8 = (current.pos - field_0x3798) * 0.95f; + mDoMtx_stack_c::YrotS(-shape_angle.y); + mDoMtx_stack_c::multVec(&vec1, &vec1); + shape_angle.x = cM_atan2s(-vec1.z, -vec1.y); + shape_angle.z = cM_atan2s(vec1.x, JMAFastSqrt(vec1.y * vec1.y + vec1.z * vec1.z)); + mProcVar2.field_0x300c = shape_angle.x; + + daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0]; + if (mProcVar1.field_0x300a != 0 || frame_ctrl->checkAnmEnd()) { + daAlink_WANM anm; + f32 f1, f2, f3; + if (checkInputOnR()) { + anm = WANM_HANDLE_HANG_SW; + f1 = daAlinkHIO_wlChain_c0::m.field_0x40; + f2 = daAlinkHIO_wlChain_c0::m.field_0x44; + } else { + anm = WANM_HANDLE_HANG_WAIT; + f1 = daAlinkHIO_wlChain_c0::m.field_0x48; + f2 = daAlinkHIO_wlChain_c0::m.field_0x4C; + } + if (anm != mUnderAnmHeap[0].getIdx()) { + if (mProcVar1.field_0x300a == 0) { + mProcVar1.field_0x300a = 1; + f3 = 0.0f; + } else { + f3 = frame_ctrl->getFrame() / frame_ctrl->getEnd(); + } + setSingleAnimeWolfBaseSpeed(anm, f1, f2); + frame_ctrl->setFrame(f3 * frame_ctrl->getEnd()); + } + } + + chain->setPullLength(field_0x3478); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -7731,6 +7880,7 @@ asm int daAlink_c::procWolfChainWait() { #include "asm/d/a/d_a_alink/procWolfChainWait__9daAlink_cFv.s" } #pragma pop +#endif /* 8013ED44-8013F1F0 139684 04AC+00 1/1 0/0 0/0 .text procWolfDigInit__9daAlink_cFv */ #pragma push