From 6229bba991717a88629e52c59b2daa45022f098a Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Wed, 11 Oct 2023 01:12:08 -0700 Subject: [PATCH] d_a_andsw2 OK, d_a_player / d_a_alink cleanup, d_a_alink_hook mostly done (#1957) * d_a_andsw2 OK * d_a_player cleanup, d_a_alink cleanup and work on d_a_alink_hook * remove asm * d_kankyo_wether almost done * some work on d_kankyo_rain --- .../__dt__20daAlink_lockCursor_cFv.s | 20 + .../__dt__29dAlink_bottleWaterPcallBack_cFv.s | 26 + .../checkLandHookshotHang__9daAlink_cFv.s | 81 - .../checkNextHookPoint__9daAlink_cFv.s | 81 - .../checkNoSubjectModeCamera__9daAlink_cFv.s | 126 - .../commonHookshotRoofWait__9daAlink_cFv.s | 70 - .../commonHookshotWallWait__9daAlink_cFv.s | 16 - .../d_a_alink/daAlink_Delete__FP9daAlink_c.s | 39 - ...tRoofWaitActor__9daAlink_cFP10fopAc_ac_c.s | 58 - .../procHookshotMoveInit__9daAlink_cFv.s | 44 - .../procHookshotMove__9daAlink_cFv.s | 64 - .../procHookshotSubject__9daAlink_cFv.s | 53 - .../setHookshotRoofWaitAnime__9daAlink_cFv.s | 37 - .../setHookshotTopPosFly__9daAlink_cFv.s | 82 - .../setHookshotWallWaitAnime__9daAlink_cFv.s | 22 - ...erOffset__20daPy_boomerangMove_cFPC4cXyz.s | 111 - .../checkSpinnerReflectEffect__9daPy_py_cFv.s | 39 - .../d_a_player/draw__18daPy_sightPacket_cFv.s | 88 - ...bSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s | 49 - .../d_a_andsw2/__dt__10daAndsw2_cFv.s | 23 - .../d_a_andsw2/chkAllSw2__10daAndsw2_cFv.s | 49 - .../d_a_andsw2/chkSwStatus2__10daAndsw2_cFv.s | 49 - .../d_a_andsw2/chkSwStatus__10daAndsw2_cFv.s | 54 - .../d_a_andsw2/create__10daAndsw2_cFv.s | 184 -- .../daAndsw2_Create__FP10fopAc_ac_c.s | 9 - .../daAndsw2_Delete__FP10daAndsw2_c.s | 11 - .../daAndsw2_Execute__FP10daAndsw2_c.s | 16 - .../daAndsw2_actionEvent__FP10daAndsw2_c.s | 52 - .../daAndsw2_actionOff__FP10daAndsw2_c.s | 59 - .../daAndsw2_actionOnAll__FP10daAndsw2_c.s | 130 -- .../daAndsw2_actionTimer__FP10daAndsw2_c.s | 109 - .../d_a_andsw2/getEventNo__10daAndsw2_cFv.s | 4 - .../d_a_andsw2/getNum__10daAndsw2_cFv.s | 4 - .../d_a_andsw2/getSwAns__10daAndsw2_cFv.s | 4 - .../d_a_andsw2/getSwbit2__10daAndsw2_cFv.s | 4 - .../d_a_andsw2/getSwbit__10daAndsw2_cFv.s | 4 - .../d_a_andsw2/getTimer__10daAndsw2_cFv.s | 4 - .../d_a_andsw2/getTopSw__10daAndsw2_cFv.s | 32 - .../d_a_andsw2/getType__10daAndsw2_cFv.s | 4 - include/JSystem/J3DGraphBase/J3DShapeMtx.h | 1 - include/JSystem/J3DGraphBase/J3DSys.h | 4 +- include/SSystem/SComponent/c_bg_s_lin_chk.h | 1 + include/d/a/d_a_alink.h | 63 +- include/d/a/d_a_player.h | 38 +- include/d/bg/d_bg_s.h | 6 +- include/d/bg/d_bg_s_acch.h | 4 +- include/d/bg/d_bg_s_gnd_chk.h | 4 +- include/d/bg/d_bg_s_roof_chk.h | 2 +- include/d/cc/d_cc_d.h | 5 +- include/d/com/d_com_inf_game.h | 27 + include/d/d_camera.h | 3 +- include/d/d_drawlist.h | 11 +- include/d/d_eye_hl.h | 18 +- include/d/d_lib.h | 1 + include/d/d_stage.h | 25 +- include/d/kankyo/d_kankyo.h | 2 +- include/d/kankyo/d_kankyo_rain.h | 27 +- include/d/kankyo/d_kankyo_wether.h | 19 +- include/d/particle/d_particle.h | 4 +- include/m_Do/m_Do_mtx.h | 6 + include/rel/d/a/b/d_a_b_dr/d_a_b_dr.h | 157 +- include/rel/d/a/d_a_andsw2/d_a_andsw2.h | 36 +- .../d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h | 1 + obj_files.mk | 1 + rel/d/a/b/d_a_b_dr/d_a_b_dr.cpp | 3 +- rel/d/a/d_a_andsw2/d_a_andsw2.cpp | 560 ++--- rel/d/a/d_a_grass/Makefile | 1 + src/d/a/d_a_alink.cpp | 2028 +---------------- src/d/a/d_a_alink_HIO.inc | 5 + src/d/a/d_a_alink_bomb.inc | 5 + src/d/a/d_a_alink_boom.inc | 9 +- src/d/a/d_a_alink_bottle.inc | 15 +- src/d/a/d_a_alink_bow.inc | 15 +- src/d/a/d_a_alink_canoe.inc | 19 +- src/d/a/d_a_alink_copyrod.inc | 15 +- src/d/a/d_a_alink_crawl.inc | 5 + src/d/a/d_a_alink_cut.inc | 81 +- src/d/a/d_a_alink_damage.inc | 5 + src/d/a/d_a_alink_demo.inc | 102 +- src/d/a/d_a_alink_effect.inc | 5 + src/d/a/d_a_alink_grab.inc | 147 +- src/d/a/d_a_alink_guard.inc | 5 + src/d/a/d_a_alink_hang.inc | 19 +- src/d/a/d_a_alink_hook.inc | 1731 ++++++++++++-- src/d/a/d_a_alink_horse.inc | 5 + src/d/a/d_a_alink_hvyboots.inc | 5 + src/d/a/d_a_alink_iceleaf.inc | 23 +- src/d/a/d_a_alink_ironball.inc | 5 + src/d/a/d_a_alink_kandelaar.inc | 7 +- src/d/a/d_a_alink_link.inc | 1425 ++++++++++-- src/d/a/d_a_alink_spinner.inc | 25 +- src/d/a/d_a_alink_sumou.inc | 7 +- src/d/a/d_a_alink_swim.inc | 27 +- src/d/a/d_a_alink_swindow.inc | 191 ++ src/d/a/d_a_alink_weakfn.inc | 1644 +++++++++++++ src/d/a/d_a_alink_whistle.inc | 19 +- src/d/a/d_a_alink_wolf.inc | 63 +- src/d/a/d_a_player.cpp | 348 +-- src/d/cc/d_cc_s.cpp | 12 +- src/d/d_camera.cpp | 2 +- src/d/d_eye_hl.cpp | 8 +- src/d/d_lib.cpp | 2 +- src/d/kankyo/d_kankyo_rain.cpp | 1562 +++++++++++-- src/d/kankyo/d_kankyo_wether.cpp | 633 +++-- 104 files changed, 7784 insertions(+), 5381 deletions(-) create mode 100644 asm/d/a/d_a_alink/__dt__20daAlink_lockCursor_cFv.s create mode 100644 asm/d/a/d_a_alink/__dt__29dAlink_bottleWaterPcallBack_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkLandHookshotHang__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkNextHookPoint__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkNoSubjectModeCamera__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/commonHookshotRoofWait__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/commonHookshotWallWait__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/daAlink_Delete__FP9daAlink_c.s delete mode 100644 asm/d/a/d_a_alink/initHookshotRoofWaitActor__9daAlink_cFP10fopAc_ac_c.s delete mode 100644 asm/d/a/d_a_alink/procHookshotMoveInit__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHookshotMove__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procHookshotSubject__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setHookshotRoofWaitAnime__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setHookshotTopPosFly__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setHookshotWallWaitAnime__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_player/bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz.s delete mode 100644 asm/d/a/d_a_player/checkSpinnerReflectEffect__9daPy_py_cFv.s delete mode 100644 asm/d/a/d_a_player/draw__18daPy_sightPacket_cFv.s delete mode 100644 asm/d/a/d_a_player/linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/__dt__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkAllSw2__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus2__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/create__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Delete__FP10daAndsw2_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Execute__FP10daAndsw2_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionEvent__FP10daAndsw2_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOff__FP10daAndsw2_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOnAll__FP10daAndsw2_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionTimer__FP10daAndsw2_c.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getEventNo__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getNum__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwAns__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit2__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTimer__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTopSw__10daAndsw2_cFv.s delete mode 100644 asm/rel/d/a/d_a_andsw2/d_a_andsw2/getType__10daAndsw2_cFv.s create mode 100644 src/d/a/d_a_alink_weakfn.inc diff --git a/asm/d/a/d_a_alink/__dt__20daAlink_lockCursor_cFv.s b/asm/d/a/d_a_alink/__dt__20daAlink_lockCursor_cFv.s new file mode 100644 index 0000000000..7ecdfbab20 --- /dev/null +++ b/asm/d/a/d_a_alink/__dt__20daAlink_lockCursor_cFv.s @@ -0,0 +1,20 @@ +lbl_800CFE68: +/* 800CFE68 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800CFE6C 7C 08 02 A6 */ mflr r0 +/* 800CFE70 90 01 00 14 */ stw r0, 0x14(r1) +/* 800CFE74 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800CFE78 7C 7F 1B 79 */ or. r31, r3, r3 +/* 800CFE7C 41 82 00 1C */ beq lbl_800CFE98 +/* 800CFE80 3C A0 80 3B */ lis r5, __vt__20daAlink_lockCursor_c@ha /* 0x803B3590@ha */ +/* 800CFE84 38 05 35 90 */ addi r0, r5, __vt__20daAlink_lockCursor_c@l /* 0x803B3590@l */ +/* 800CFE88 90 1F 00 00 */ stw r0, 0(r31) +/* 800CFE8C 7C 80 07 35 */ extsh. r0, r4 +/* 800CFE90 40 81 00 08 */ ble lbl_800CFE98 +/* 800CFE94 48 1F EE A9 */ bl __dl__FPv +lbl_800CFE98: +/* 800CFE98 7F E3 FB 78 */ mr r3, r31 +/* 800CFE9C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800CFEA0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800CFEA4 7C 08 03 A6 */ mtlr r0 +/* 800CFEA8 38 21 00 10 */ addi r1, r1, 0x10 +/* 800CFEAC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/d/a/d_a_alink/__dt__29dAlink_bottleWaterPcallBack_cFv.s b/asm/d/a/d_a_alink/__dt__29dAlink_bottleWaterPcallBack_cFv.s new file mode 100644 index 0000000000..da5aed2ad0 --- /dev/null +++ b/asm/d/a/d_a_alink/__dt__29dAlink_bottleWaterPcallBack_cFv.s @@ -0,0 +1,26 @@ +lbl_800CFCF8: +/* 800CFCF8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800CFCFC 7C 08 02 A6 */ mflr r0 +/* 800CFD00 90 01 00 14 */ stw r0, 0x14(r1) +/* 800CFD04 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800CFD08 93 C1 00 08 */ stw r30, 8(r1) +/* 800CFD0C 7C 7E 1B 79 */ or. r30, r3, r3 +/* 800CFD10 7C 9F 23 78 */ mr r31, r4 +/* 800CFD14 41 82 00 28 */ beq lbl_800CFD3C +/* 800CFD18 3C 80 80 3B */ lis r4, __vt__29dAlink_bottleWaterPcallBack_c@ha /* 0x803B35B4@ha */ +/* 800CFD1C 38 04 35 B4 */ addi r0, r4, __vt__29dAlink_bottleWaterPcallBack_c@l /* 0x803B35B4@l */ +/* 800CFD20 90 1E 00 00 */ stw r0, 0(r30) +/* 800CFD24 38 80 00 00 */ li r4, 0 +/* 800CFD28 48 1A F2 7D */ bl __dt__19JPAParticleCallBackFv +/* 800CFD2C 7F E0 07 35 */ extsh. r0, r31 +/* 800CFD30 40 81 00 0C */ ble lbl_800CFD3C +/* 800CFD34 7F C3 F3 78 */ mr r3, r30 +/* 800CFD38 48 1F F0 05 */ bl __dl__FPv +lbl_800CFD3C: +/* 800CFD3C 7F C3 F3 78 */ mr r3, r30 +/* 800CFD40 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800CFD44 83 C1 00 08 */ lwz r30, 8(r1) +/* 800CFD48 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800CFD4C 7C 08 03 A6 */ mtlr r0 +/* 800CFD50 38 21 00 10 */ addi r1, r1, 0x10 +/* 800CFD54 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/d/a/d_a_alink/checkLandHookshotHang__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkLandHookshotHang__9daAlink_cFv.s deleted file mode 100644 index b7df5cc185..0000000000 --- a/asm/d/a/d_a_alink/checkLandHookshotHang__9daAlink_cFv.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_8010B84C: -/* 8010B84C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8010B850 7C 08 02 A6 */ mflr r0 -/* 8010B854 90 01 00 24 */ stw r0, 0x24(r1) -/* 8010B858 DB E1 00 10 */ stfd f31, 0x10(r1) -/* 8010B85C F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0 /* qr0 */ -/* 8010B860 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010B864 7C 7F 1B 78 */ mr r31, r3 -/* 8010B868 38 7F 1D 08 */ addi r3, r31, 0x1d08 -/* 8010B86C 38 9F 38 34 */ addi r4, r31, 0x3834 -/* 8010B870 48 15 C4 B9 */ bl SetPos__11cBgS_GndChkFPC4cXyz -/* 8010B874 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010B878 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010B87C 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 8010B880 38 9F 1D 08 */ addi r4, r31, 0x1d08 -/* 8010B884 4B F6 8C 1D */ bl GroundCross__4cBgSFP11cBgS_GndChk -/* 8010B888 FF E0 08 90 */ fmr f31, f1 -/* 8010B88C 7F E3 FB 78 */ mr r3, r31 -/* 8010B890 4B FF E0 01 */ bl setHookshotHangMoveBGCollect__9daAlink_cFv -/* 8010B894 2C 03 00 00 */ cmpwi r3, 0 -/* 8010B898 41 82 00 1C */ beq lbl_8010B8B4 -/* 8010B89C C0 1F 05 E4 */ lfs f0, 0x5e4(r31) -/* 8010B8A0 FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 8010B8A4 41 81 00 10 */ bgt lbl_8010B8B4 -/* 8010B8A8 C0 1F 05 F0 */ lfs f0, 0x5f0(r31) -/* 8010B8AC FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 8010B8B0 40 81 00 10 */ ble lbl_8010B8C0 -lbl_8010B8B4: -/* 8010B8B4 7F E3 FB 78 */ mr r3, r31 -/* 8010B8B8 4B FF FE 69 */ bl checkNextHookPoint__9daAlink_cFv -/* 8010B8BC 48 00 00 94 */ b lbl_8010B950 -lbl_8010B8C0: -/* 8010B8C0 A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 8010B8C4 28 00 00 C9 */ cmplwi r0, 0xc9 -/* 8010B8C8 41 82 00 84 */ beq lbl_8010B94C -/* 8010B8CC 28 00 00 C8 */ cmplwi r0, 0xc8 -/* 8010B8D0 41 82 00 0C */ beq lbl_8010B8DC -/* 8010B8D4 28 00 00 CB */ cmplwi r0, 0xcb -/* 8010B8D8 40 82 00 14 */ bne lbl_8010B8EC -lbl_8010B8DC: -/* 8010B8DC 7F E3 FB 78 */ mr r3, r31 -/* 8010B8E0 4B FF D1 39 */ bl checkHookshotWait__9daAlink_cCFv -/* 8010B8E4 2C 03 00 00 */ cmpwi r3, 0 -/* 8010B8E8 41 82 00 64 */ beq lbl_8010B94C -lbl_8010B8EC: -/* 8010B8EC 7F E3 FB 78 */ mr r3, r31 -/* 8010B8F0 4B FF CF B1 */ bl checkHookshotRoofLv7Boss__9daAlink_cFv -/* 8010B8F4 2C 03 00 00 */ cmpwi r3, 0 -/* 8010B8F8 41 82 00 10 */ beq lbl_8010B908 -/* 8010B8FC 80 1F 05 70 */ lwz r0, 0x570(r31) -/* 8010B900 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 8010B904 40 82 00 48 */ bne lbl_8010B94C -lbl_8010B908: -/* 8010B908 7F E3 FB 78 */ mr r3, r31 -/* 8010B90C 38 80 00 45 */ li r4, 0x45 -/* 8010B910 4B FB 48 55 */ bl checkSetItemTrigger__9daAlink_cFi -/* 8010B914 2C 03 00 00 */ cmpwi r3, 0 -/* 8010B918 41 82 00 34 */ beq lbl_8010B94C -/* 8010B91C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010B920 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010B924 80 03 5F 1C */ lwz r0, 0x5f1c(r3) -/* 8010B928 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf -/* 8010B92C 41 82 00 14 */ beq lbl_8010B940 -/* 8010B930 7F E3 FB 78 */ mr r3, r31 -/* 8010B934 80 9F 28 58 */ lwz r4, 0x2858(r31) -/* 8010B938 48 00 16 35 */ bl procHookshotRoofBootsInit__9daAlink_cFP10fopAc_ac_c -/* 8010B93C 48 00 00 14 */ b lbl_8010B950 -lbl_8010B940: -/* 8010B940 7F E3 FB 78 */ mr r3, r31 -/* 8010B944 38 80 00 01 */ li r4, 1 -/* 8010B948 4B FD 6C 39 */ bl setHeavyBoots__9daAlink_cFi -lbl_8010B94C: -/* 8010B94C 38 60 00 00 */ li r3, 0 -lbl_8010B950: -/* 8010B950 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0 /* qr0 */ -/* 8010B954 CB E1 00 10 */ lfd f31, 0x10(r1) -/* 8010B958 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010B95C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8010B960 7C 08 03 A6 */ mtlr r0 -/* 8010B964 38 21 00 20 */ addi r1, r1, 0x20 -/* 8010B968 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkNextHookPoint__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkNextHookPoint__9daAlink_cFv.s deleted file mode 100644 index 98cf860fe1..0000000000 --- a/asm/d/a/d_a_alink/checkNextHookPoint__9daAlink_cFv.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_8010B720: -/* 8010B720 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8010B724 7C 08 02 A6 */ mflr r0 -/* 8010B728 90 01 00 14 */ stw r0, 0x14(r1) -/* 8010B72C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010B730 93 C1 00 08 */ stw r30, 8(r1) -/* 8010B734 7C 7F 1B 78 */ mr r31, r3 -/* 8010B738 A8 03 30 26 */ lha r0, 0x3026(r3) -/* 8010B73C 2C 00 00 00 */ cmpwi r0, 0 -/* 8010B740 41 82 00 88 */ beq lbl_8010B7C8 -/* 8010B744 83 DF 28 50 */ lwz r30, 0x2850(r31) -/* 8010B748 A8 7F 30 1A */ lha r3, 0x301a(r31) -/* 8010B74C 2C 03 00 05 */ cmpwi r3, 5 -/* 8010B750 40 82 00 18 */ bne lbl_8010B768 -/* 8010B754 28 1E 00 00 */ cmplwi r30, 0 -/* 8010B758 41 82 00 10 */ beq lbl_8010B768 -/* 8010B75C 80 1E 04 9C */ lwz r0, 0x49c(r30) -/* 8010B760 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb -/* 8010B764 40 82 00 50 */ bne lbl_8010B7B4 -lbl_8010B768: -/* 8010B768 2C 03 00 04 */ cmpwi r3, 4 -/* 8010B76C 40 82 00 B8 */ bne lbl_8010B824 -/* 8010B770 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010B774 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010B778 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 8010B77C 38 9F 1E 2C */ addi r4, r31, 0x1e2c -/* 8010B780 4B F6 8E E1 */ bl ChkPolySafe__4cBgSFRC13cBgS_PolyInfo -/* 8010B784 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8010B788 41 82 00 9C */ beq lbl_8010B824 -/* 8010B78C 7F E3 FB 78 */ mr r3, r31 -/* 8010B790 38 9F 1E 2C */ addi r4, r31, 0x1e2c -/* 8010B794 4B FF D0 1D */ bl checkHookshotStickBG__9daAlink_cFR13cBgS_PolyInfo -/* 8010B798 2C 03 00 00 */ cmpwi r3, 0 -/* 8010B79C 41 82 00 88 */ beq lbl_8010B824 -/* 8010B7A0 28 1E 00 00 */ cmplwi r30, 0 -/* 8010B7A4 41 82 00 10 */ beq lbl_8010B7B4 -/* 8010B7A8 80 1E 04 9C */ lwz r0, 0x49c(r30) -/* 8010B7AC 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb -/* 8010B7B0 41 82 00 74 */ beq lbl_8010B824 -lbl_8010B7B4: -/* 8010B7B4 38 00 00 00 */ li r0, 0 -/* 8010B7B8 B0 1F 30 26 */ sth r0, 0x3026(r31) -/* 8010B7BC 7F E3 FB 78 */ mr r3, r31 -/* 8010B7C0 48 00 05 D1 */ bl procHookshotFlyInit__9daAlink_cFv -/* 8010B7C4 48 00 00 70 */ b lbl_8010B834 -lbl_8010B7C8: -/* 8010B7C8 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010B7CC 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010B7D0 80 04 5F 1C */ lwz r0, 0x5f1c(r4) -/* 8010B7D4 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf -/* 8010B7D8 41 82 00 4C */ beq lbl_8010B824 -/* 8010B7DC 4B FF D0 C5 */ bl checkHookshotRoofLv7Boss__9daAlink_cFv -/* 8010B7E0 2C 03 00 00 */ cmpwi r3, 0 -/* 8010B7E4 41 82 00 40 */ beq lbl_8010B824 -/* 8010B7E8 80 7F 28 58 */ lwz r3, 0x2858(r31) -/* 8010B7EC 80 03 04 9C */ lwz r0, 0x49c(r3) -/* 8010B7F0 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb -/* 8010B7F4 40 82 00 30 */ bne lbl_8010B824 -/* 8010B7F8 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 8010B7FC B0 1F 31 02 */ sth r0, 0x3102(r31) -/* 8010B800 7F E3 FB 78 */ mr r3, r31 -/* 8010B804 38 80 FF FA */ li r4, -6 -/* 8010B808 38 A0 00 01 */ li r5, 1 -/* 8010B80C 38 C0 00 00 */ li r6, 0 -/* 8010B810 38 E0 00 00 */ li r7, 0 -/* 8010B814 39 00 00 00 */ li r8, 0 -/* 8010B818 39 20 00 00 */ li r9, 0 -/* 8010B81C 4B FC DE C1 */ bl procCoLargeDamageInit__9daAlink_cFiissP12dCcD_GObjInfi -/* 8010B820 48 00 00 14 */ b lbl_8010B834 -lbl_8010B824: -/* 8010B824 7F E3 FB 78 */ mr r3, r31 -/* 8010B828 38 80 00 01 */ li r4, 1 -/* 8010B82C C0 22 93 3C */ lfs f1, lit_7808(r2) -/* 8010B830 4B FB B2 19 */ bl procFallInit__9daAlink_cFif -lbl_8010B834: -/* 8010B834 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010B838 83 C1 00 08 */ lwz r30, 8(r1) -/* 8010B83C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8010B840 7C 08 03 A6 */ mtlr r0 -/* 8010B844 38 21 00 10 */ addi r1, r1, 0x10 -/* 8010B848 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkNoSubjectModeCamera__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkNoSubjectModeCamera__9daAlink_cFv.s deleted file mode 100644 index d2522306e4..0000000000 --- a/asm/d/a/d_a_alink/checkNoSubjectModeCamera__9daAlink_cFv.s +++ /dev/null @@ -1,126 +0,0 @@ -lbl_800CE294: -/* 800CE294 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 800CE298 7C 08 02 A6 */ mflr r0 -/* 800CE29C 90 01 00 34 */ stw r0, 0x34(r1) -/* 800CE2A0 39 61 00 30 */ addi r11, r1, 0x30 -/* 800CE2A4 48 29 3F 1D */ bl _savegpr_22 -/* 800CE2A8 7C 7A 1B 78 */ mr r26, r3 -/* 800CE2AC 3B E0 00 01 */ li r31, 1 -/* 800CE2B0 7F FE FB 78 */ mr r30, r31 -/* 800CE2B4 7F FD FB 78 */ mr r29, r31 -/* 800CE2B8 7F FC FB 78 */ mr r28, r31 -/* 800CE2BC 7F FB FB 78 */ mr r27, r31 -/* 800CE2C0 7F F9 FB 78 */ mr r25, r31 -/* 800CE2C4 7F F8 FB 78 */ mr r24, r31 -/* 800CE2C8 7F F7 FB 78 */ mr r23, r31 -/* 800CE2CC 48 0B 33 75 */ bl dCam_getBody__Fv -/* 800CE2D0 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE2D4 48 0B 33 6D */ bl dCam_getBody__Fv -/* 800CE2D8 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE2DC 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE2E0 48 09 68 85 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE2E4 7C 16 18 00 */ cmpw r22, r3 -/* 800CE2E8 41 82 00 2C */ beq lbl_800CE314 -/* 800CE2EC 48 0B 33 55 */ bl dCam_getBody__Fv -/* 800CE2F0 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE2F4 48 0B 33 4D */ bl dCam_getBody__Fv -/* 800CE2F8 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE2FC 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE300 38 84 00 07 */ addi r4, r4, 7 -/* 800CE304 48 09 68 61 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE308 7C 16 18 00 */ cmpw r22, r3 -/* 800CE30C 41 82 00 08 */ beq lbl_800CE314 -/* 800CE310 3A E0 00 00 */ li r23, 0 -lbl_800CE314: -/* 800CE314 56 E0 06 3F */ clrlwi. r0, r23, 0x18 -/* 800CE318 40 82 00 2C */ bne lbl_800CE344 -/* 800CE31C 48 0B 33 25 */ bl dCam_getBody__Fv -/* 800CE320 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE324 48 0B 33 1D */ bl dCam_getBody__Fv -/* 800CE328 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE32C 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE330 38 84 00 10 */ addi r4, r4, 0x10 -/* 800CE334 48 09 68 31 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE338 7C 16 18 00 */ cmpw r22, r3 -/* 800CE33C 41 82 00 08 */ beq lbl_800CE344 -/* 800CE340 3B 00 00 00 */ li r24, 0 -lbl_800CE344: -/* 800CE344 57 00 06 3F */ clrlwi. r0, r24, 0x18 -/* 800CE348 40 82 00 2C */ bne lbl_800CE374 -/* 800CE34C 48 0B 32 F5 */ bl dCam_getBody__Fv -/* 800CE350 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE354 48 0B 32 ED */ bl dCam_getBody__Fv -/* 800CE358 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE35C 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE360 38 84 00 16 */ addi r4, r4, 0x16 -/* 800CE364 48 09 68 01 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE368 7C 16 18 00 */ cmpw r22, r3 -/* 800CE36C 41 82 00 08 */ beq lbl_800CE374 -/* 800CE370 3B 20 00 00 */ li r25, 0 -lbl_800CE374: -/* 800CE374 57 20 06 3F */ clrlwi. r0, r25, 0x18 -/* 800CE378 40 82 00 2C */ bne lbl_800CE3A4 -/* 800CE37C 48 0B 32 C5 */ bl dCam_getBody__Fv -/* 800CE380 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE384 48 0B 32 BD */ bl dCam_getBody__Fv -/* 800CE388 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE38C 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE390 38 84 00 1D */ addi r4, r4, 0x1d -/* 800CE394 48 09 67 D1 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE398 7C 16 18 00 */ cmpw r22, r3 -/* 800CE39C 41 82 00 08 */ beq lbl_800CE3A4 -/* 800CE3A0 3B 60 00 00 */ li r27, 0 -lbl_800CE3A4: -/* 800CE3A4 57 60 06 3F */ clrlwi. r0, r27, 0x18 -/* 800CE3A8 40 82 00 2C */ bne lbl_800CE3D4 -/* 800CE3AC 48 0B 32 95 */ bl dCam_getBody__Fv -/* 800CE3B0 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE3B4 48 0B 32 8D */ bl dCam_getBody__Fv -/* 800CE3B8 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE3BC 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE3C0 38 84 00 25 */ addi r4, r4, 0x25 -/* 800CE3C4 48 09 67 A1 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE3C8 7C 16 18 00 */ cmpw r22, r3 -/* 800CE3CC 41 82 00 08 */ beq lbl_800CE3D4 -/* 800CE3D0 3B 80 00 00 */ li r28, 0 -lbl_800CE3D4: -/* 800CE3D4 57 80 06 3F */ clrlwi. r0, r28, 0x18 -/* 800CE3D8 40 82 00 14 */ bne lbl_800CE3EC -/* 800CE3DC 88 1A 05 6A */ lbz r0, 0x56a(r26) -/* 800CE3E0 28 00 00 2C */ cmplwi r0, 0x2c -/* 800CE3E4 41 82 00 08 */ beq lbl_800CE3EC -/* 800CE3E8 3B A0 00 00 */ li r29, 0 -lbl_800CE3EC: -/* 800CE3EC 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 800CE3F0 40 82 00 2C */ bne lbl_800CE41C -/* 800CE3F4 48 0B 32 4D */ bl dCam_getBody__Fv -/* 800CE3F8 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE3FC 48 0B 32 45 */ bl dCam_getBody__Fv -/* 800CE400 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE404 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE408 38 84 00 2C */ addi r4, r4, 0x2c -/* 800CE40C 48 09 67 59 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE410 7C 16 18 00 */ cmpw r22, r3 -/* 800CE414 41 82 00 08 */ beq lbl_800CE41C -/* 800CE418 3B C0 00 00 */ li r30, 0 -lbl_800CE41C: -/* 800CE41C 57 C0 06 3F */ clrlwi. r0, r30, 0x18 -/* 800CE420 40 82 00 2C */ bne lbl_800CE44C -/* 800CE424 48 0B 32 1D */ bl dCam_getBody__Fv -/* 800CE428 82 C3 06 8C */ lwz r22, 0x68c(r3) -/* 800CE42C 48 0B 32 15 */ bl dCam_getBody__Fv -/* 800CE430 3C 80 80 39 */ lis r4, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 800CE434 38 84 20 94 */ addi r4, r4, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 800CE438 38 84 00 34 */ addi r4, r4, 0x34 -/* 800CE43C 48 09 67 29 */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc -/* 800CE440 7C 16 18 00 */ cmpw r22, r3 -/* 800CE444 41 82 00 08 */ beq lbl_800CE44C -/* 800CE448 3B E0 00 00 */ li r31, 0 -lbl_800CE44C: -/* 800CE44C 7F E3 FB 78 */ mr r3, r31 -/* 800CE450 39 61 00 30 */ addi r11, r1, 0x30 -/* 800CE454 48 29 3D B9 */ bl _restgpr_22 -/* 800CE458 80 01 00 34 */ lwz r0, 0x34(r1) -/* 800CE45C 7C 08 03 A6 */ mtlr r0 -/* 800CE460 38 21 00 30 */ addi r1, r1, 0x30 -/* 800CE464 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/commonHookshotRoofWait__9daAlink_cFv.s b/asm/d/a/d_a_alink/commonHookshotRoofWait__9daAlink_cFv.s deleted file mode 100644 index 31b1adbfed..0000000000 --- a/asm/d/a/d_a_alink/commonHookshotRoofWait__9daAlink_cFv.s +++ /dev/null @@ -1,70 +0,0 @@ -lbl_8010B96C: -/* 8010B96C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8010B970 7C 08 02 A6 */ mflr r0 -/* 8010B974 90 01 00 44 */ stw r0, 0x44(r1) -/* 8010B978 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 8010B97C 7C 7F 1B 78 */ mr r31, r3 -/* 8010B980 4B FA 8F 51 */ bl setJumpMode__9daAlink_cFv -/* 8010B984 A8 1F 30 10 */ lha r0, 0x3010(r31) -/* 8010B988 2C 00 00 00 */ cmpwi r0, 0 -/* 8010B98C 41 82 00 30 */ beq lbl_8010B9BC -/* 8010B990 38 7F 28 54 */ addi r3, r31, 0x2854 -/* 8010B994 48 05 32 B5 */ bl setActor__16daPy_actorKeep_cFv -/* 8010B998 80 7F 28 58 */ lwz r3, 0x2858(r31) -/* 8010B99C 28 03 00 00 */ cmplwi r3, 0 -/* 8010B9A0 41 82 00 10 */ beq lbl_8010B9B0 -/* 8010B9A4 80 03 04 9C */ lwz r0, 0x49c(r3) -/* 8010B9A8 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb -/* 8010B9AC 40 82 00 10 */ bne lbl_8010B9BC -lbl_8010B9B0: -/* 8010B9B0 7F E3 FB 78 */ mr r3, r31 -/* 8010B9B4 4B FF FD 6D */ bl checkNextHookPoint__9daAlink_cFv -/* 8010B9B8 48 00 00 A0 */ b lbl_8010BA58 -lbl_8010B9BC: -/* 8010B9BC 80 1F 19 9C */ lwz r0, 0x199c(r31) -/* 8010B9C0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 8010B9C4 41 82 00 10 */ beq lbl_8010B9D4 -/* 8010B9C8 7F E3 FB 78 */ mr r3, r31 -/* 8010B9CC 4B FF FD 55 */ bl checkNextHookPoint__9daAlink_cFv -/* 8010B9D0 48 00 00 88 */ b lbl_8010BA58 -lbl_8010B9D4: -/* 8010B9D4 38 61 00 14 */ addi r3, r1, 0x14 -/* 8010B9D8 38 9F 04 D0 */ addi r4, r31, 0x4d0 -/* 8010B9DC 38 BF 37 98 */ addi r5, r31, 0x3798 -/* 8010B9E0 48 15 B1 55 */ bl __mi__4cXyzCFRC3Vec -/* 8010B9E4 38 61 00 08 */ addi r3, r1, 8 -/* 8010B9E8 38 9F 38 10 */ addi r4, r31, 0x3810 -/* 8010B9EC 38 A1 00 14 */ addi r5, r1, 0x14 -/* 8010B9F0 48 15 B0 F5 */ bl __pl__4cXyzCFRC3Vec -/* 8010B9F4 C0 01 00 08 */ lfs f0, 8(r1) -/* 8010B9F8 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 8010B9FC C0 01 00 0C */ lfs f0, 0xc(r1) -/* 8010BA00 D0 01 00 24 */ stfs f0, 0x24(r1) -/* 8010BA04 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 8010BA08 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 8010BA0C 38 7F 1B B8 */ addi r3, r31, 0x1bb8 -/* 8010BA10 38 81 00 20 */ addi r4, r1, 0x20 -/* 8010BA14 38 BF 38 04 */ addi r5, r31, 0x3804 -/* 8010BA18 7F E6 FB 78 */ mr r6, r31 -/* 8010BA1C 4B F6 C3 49 */ bl Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c -/* 8010BA20 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010BA24 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010BA28 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 8010BA2C 38 9F 1B B8 */ addi r4, r31, 0x1bb8 -/* 8010BA30 4B F6 89 85 */ bl LineCross__4cBgSFP11cBgS_LinChk -/* 8010BA34 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8010BA38 41 82 00 10 */ beq lbl_8010BA48 -/* 8010BA3C 7F E3 FB 78 */ mr r3, r31 -/* 8010BA40 4B FF FC E1 */ bl checkNextHookPoint__9daAlink_cFv -/* 8010BA44 48 00 00 14 */ b lbl_8010BA58 -lbl_8010BA48: -/* 8010BA48 7F E3 FB 78 */ mr r3, r31 -/* 8010BA4C 4B FF FE 01 */ bl checkLandHookshotHang__9daAlink_cFv -/* 8010BA50 30 03 FF FF */ addic r0, r3, -1 -/* 8010BA54 7C 60 19 10 */ subfe r3, r0, r3 -lbl_8010BA58: -/* 8010BA58 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 8010BA5C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8010BA60 7C 08 03 A6 */ mtlr r0 -/* 8010BA64 38 21 00 40 */ addi r1, r1, 0x40 -/* 8010BA68 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/commonHookshotWallWait__9daAlink_cFv.s b/asm/d/a/d_a_alink/commonHookshotWallWait__9daAlink_cFv.s deleted file mode 100644 index df024dcadc..0000000000 --- a/asm/d/a/d_a_alink/commonHookshotWallWait__9daAlink_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8010BA6C: -/* 8010BA6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8010BA70 7C 08 02 A6 */ mflr r0 -/* 8010BA74 90 01 00 14 */ stw r0, 0x14(r1) -/* 8010BA78 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010BA7C 7C 7F 1B 78 */ mr r31, r3 -/* 8010BA80 4B FA 8E 51 */ bl setJumpMode__9daAlink_cFv -/* 8010BA84 7F E3 FB 78 */ mr r3, r31 -/* 8010BA88 4B FF FD C5 */ bl checkLandHookshotHang__9daAlink_cFv -/* 8010BA8C 30 03 FF FF */ addic r0, r3, -1 -/* 8010BA90 7C 60 19 10 */ subfe r3, r0, r3 -/* 8010BA94 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010BA98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8010BA9C 7C 08 03 A6 */ mtlr r0 -/* 8010BAA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8010BAA4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/daAlink_Delete__FP9daAlink_c.s b/asm/d/a/d_a_alink/daAlink_Delete__FP9daAlink_c.s deleted file mode 100644 index 8cb317b8ec..0000000000 --- a/asm/d/a/d_a_alink/daAlink_Delete__FP9daAlink_c.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_800CE208: -/* 800CE208 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800CE20C 7C 08 02 A6 */ mflr r0 -/* 800CE210 90 01 00 14 */ stw r0, 0x14(r1) -/* 800CE214 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800CE218 7C 7F 1B 78 */ mr r31, r3 -/* 800CE21C 81 83 06 28 */ lwz r12, 0x628(r3) -/* 800CE220 81 8C 02 6C */ lwz r12, 0x26c(r12) -/* 800CE224 7D 89 03 A6 */ mtctr r12 -/* 800CE228 4E 80 04 21 */ bctrl -/* 800CE22C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800CE230 41 82 00 14 */ beq lbl_800CE244 -/* 800CE234 7F E3 FB 78 */ mr r3, r31 -/* 800CE238 48 07 1E 39 */ bl loadModelDVD__9daAlink_cFv -/* 800CE23C 38 60 00 00 */ li r3, 0 -/* 800CE240 48 00 00 40 */ b lbl_800CE280 -lbl_800CE244: -/* 800CE244 7F E3 FB 78 */ mr r3, r31 -/* 800CE248 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800CE24C 81 8C 02 70 */ lwz r12, 0x270(r12) -/* 800CE250 7D 89 03 A6 */ mtctr r12 -/* 800CE254 4E 80 04 21 */ bctrl -/* 800CE258 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800CE25C 41 82 00 14 */ beq lbl_800CE270 -/* 800CE260 7F E3 FB 78 */ mr r3, r31 -/* 800CE264 48 07 20 11 */ bl loadShieldModelDVD__9daAlink_cFv -/* 800CE268 38 60 00 00 */ li r3, 0 -/* 800CE26C 48 00 00 14 */ b lbl_800CE280 -lbl_800CE270: -/* 800CE270 7F E3 FB 78 */ mr r3, r31 -/* 800CE274 38 80 FF FF */ li r4, -1 -/* 800CE278 4B FF F5 35 */ bl __dt__9daAlink_cFv -/* 800CE27C 38 60 00 01 */ li r3, 1 -lbl_800CE280: -/* 800CE280 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800CE284 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800CE288 7C 08 03 A6 */ mtlr r0 -/* 800CE28C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800CE290 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/initHookshotRoofWaitActor__9daAlink_cFP10fopAc_ac_c.s b/asm/d/a/d_a_alink/initHookshotRoofWaitActor__9daAlink_cFP10fopAc_ac_c.s deleted file mode 100644 index 8b9721144c..0000000000 --- a/asm/d/a/d_a_alink/initHookshotRoofWaitActor__9daAlink_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,58 +0,0 @@ -lbl_8010B644: -/* 8010B644 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8010B648 7C 08 02 A6 */ mflr r0 -/* 8010B64C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8010B650 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8010B654 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8010B658 7C 7E 1B 78 */ mr r30, r3 -/* 8010B65C 7C 9F 23 79 */ or. r31, r4, r4 -/* 8010B660 41 82 00 98 */ beq lbl_8010B6F8 -/* 8010B664 38 7E 28 54 */ addi r3, r30, 0x2854 -/* 8010B668 48 05 36 51 */ bl setData__16daPy_actorKeep_cFP10fopAc_ac_c -/* 8010B66C 38 61 00 08 */ addi r3, r1, 8 -/* 8010B670 38 9E 38 04 */ addi r4, r30, 0x3804 -/* 8010B674 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 8010B678 48 15 B4 BD */ bl __mi__4cXyzCFRC3Vec -/* 8010B67C C0 01 00 08 */ lfs f0, 8(r1) -/* 8010B680 D0 1E 37 C8 */ stfs f0, 0x37c8(r30) -/* 8010B684 C0 01 00 0C */ lfs f0, 0xc(r1) -/* 8010B688 D0 1E 37 CC */ stfs f0, 0x37cc(r30) -/* 8010B68C C0 01 00 10 */ lfs f0, 0x10(r1) -/* 8010B690 D0 1E 37 D0 */ stfs f0, 0x37d0(r30) -/* 8010B694 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8010B698 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8010B69C A8 1F 04 E4 */ lha r0, 0x4e4(r31) -/* 8010B6A0 7C 00 00 D0 */ neg r0, r0 -/* 8010B6A4 7C 04 07 34 */ extsh r4, r0 -/* 8010B6A8 4B F0 0C 9D */ bl mDoMtx_XrotS__FPA4_fs -/* 8010B6AC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8010B6B0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8010B6B4 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 8010B6B8 7C 00 00 D0 */ neg r0, r0 -/* 8010B6BC 7C 04 07 34 */ extsh r4, r0 -/* 8010B6C0 4B F0 0D 75 */ bl mDoMtx_YrotM__FPA4_fs -/* 8010B6C4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8010B6C8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8010B6CC 38 9E 37 C8 */ addi r4, r30, 0x37c8 -/* 8010B6D0 7C 85 23 78 */ mr r5, r4 -/* 8010B6D4 48 23 B7 79 */ bl PSMTXMultVecSR -/* 8010B6D8 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 8010B6DC B0 1E 30 08 */ sth r0, 0x3008(r30) -/* 8010B6E0 80 1F 04 9C */ lwz r0, 0x49c(r31) -/* 8010B6E4 64 00 00 10 */ oris r0, r0, 0x10 -/* 8010B6E8 90 1F 04 9C */ stw r0, 0x49c(r31) -/* 8010B6EC 38 00 00 01 */ li r0, 1 -/* 8010B6F0 B0 1E 30 10 */ sth r0, 0x3010(r30) -/* 8010B6F4 48 00 00 14 */ b lbl_8010B708 -lbl_8010B6F8: -/* 8010B6F8 38 7E 28 54 */ addi r3, r30, 0x2854 -/* 8010B6FC 48 05 36 01 */ bl clearData__16daPy_actorKeep_cFv -/* 8010B700 38 00 00 00 */ li r0, 0 -/* 8010B704 B0 1E 30 10 */ sth r0, 0x3010(r30) -lbl_8010B708: -/* 8010B708 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8010B70C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8010B710 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8010B714 7C 08 03 A6 */ mtlr r0 -/* 8010B718 38 21 00 20 */ addi r1, r1, 0x20 -/* 8010B71C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHookshotMoveInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHookshotMoveInit__9daAlink_cFv.s deleted file mode 100644 index 2a72942e6b..0000000000 --- a/asm/d/a/d_a_alink/procHookshotMoveInit__9daAlink_cFv.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_8010BC08: -/* 8010BC08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8010BC0C 7C 08 02 A6 */ mflr r0 -/* 8010BC10 90 01 00 14 */ stw r0, 0x14(r1) -/* 8010BC14 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010BC18 7C 7F 1B 78 */ mr r31, r3 -/* 8010BC1C 38 80 00 C5 */ li r4, 0xc5 -/* 8010BC20 4B FB 71 85 */ bl commonProcInitNotSameProc__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 8010BC24 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BC28 40 82 00 0C */ bne lbl_8010BC34 -/* 8010BC2C 38 60 00 00 */ li r3, 0 -/* 8010BC30 48 00 00 60 */ b lbl_8010BC90 -lbl_8010BC34: -/* 8010BC34 7F E3 FB 78 */ mr r3, r31 -/* 8010BC38 4B FA 7C CD */ bl checkZeroSpeedF__9daAlink_cCFv -/* 8010BC3C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8010BC40 41 82 00 10 */ beq lbl_8010BC50 -/* 8010BC44 80 1F 31 A0 */ lwz r0, 0x31a0(r31) -/* 8010BC48 60 00 00 01 */ ori r0, r0, 1 -/* 8010BC4C 90 1F 31 A0 */ stw r0, 0x31a0(r31) -lbl_8010BC50: -/* 8010BC50 7F E3 FB 78 */ mr r3, r31 -/* 8010BC54 38 80 00 00 */ li r4, 0 -/* 8010BC58 4B FF D4 95 */ bl initHookshotUpperAnimeSpeed__9daAlink_cFi -/* 8010BC5C 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BC60 41 82 00 18 */ beq lbl_8010BC78 -/* 8010BC64 7F E3 FB 78 */ mr r3, r31 -/* 8010BC68 3C 80 80 39 */ lis r4, m__22daAlinkHIO_hookshot_c0@ha /* 0x8038E9C0@ha */ -/* 8010BC6C 38 84 E9 C0 */ addi r4, r4, m__22daAlinkHIO_hookshot_c0@l /* 0x8038E9C0@l */ -/* 8010BC70 C0 24 00 44 */ lfs f1, 0x44(r4) -/* 8010BC74 4B FA 2D FD */ bl setBlendAtnMoveAnime__9daAlink_cFf -lbl_8010BC78: -/* 8010BC78 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010BC7C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010BC80 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 8010BC84 60 00 40 00 */ ori r0, r0, 0x4000 -/* 8010BC88 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 8010BC8C 38 60 00 01 */ li r3, 1 -lbl_8010BC90: -/* 8010BC90 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010BC94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8010BC98 7C 08 03 A6 */ mtlr r0 -/* 8010BC9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8010BCA0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHookshotMove__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHookshotMove__9daAlink_cFv.s deleted file mode 100644 index ef068ae3a3..0000000000 --- a/asm/d/a/d_a_alink/procHookshotMove__9daAlink_cFv.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_8010BCA4: -/* 8010BCA4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8010BCA8 7C 08 02 A6 */ mflr r0 -/* 8010BCAC 90 01 00 24 */ stw r0, 0x24(r1) -/* 8010BCB0 DB E1 00 10 */ stfd f31, 0x10(r1) -/* 8010BCB4 F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0 /* qr0 */ -/* 8010BCB8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010BCBC 7C 7F 1B 78 */ mr r31, r3 -/* 8010BCC0 4B FF D2 A5 */ bl cancelHookshotMove__9daAlink_cFv -/* 8010BCC4 7F E3 FB 78 */ mr r3, r31 -/* 8010BCC8 38 80 00 00 */ li r4, 0 -/* 8010BCCC 4B FA E4 05 */ bl checkNextAction__9daAlink_cFi -/* 8010BCD0 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BCD4 40 82 00 9C */ bne lbl_8010BD70 -/* 8010BCD8 C3 E2 92 BC */ lfs f31, lit_6041(r2) -/* 8010BCDC 7F E3 FB 78 */ mr r3, r31 -/* 8010BCE0 4B FA 7C 25 */ bl checkZeroSpeedF__9daAlink_cCFv -/* 8010BCE4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8010BCE8 41 82 00 34 */ beq lbl_8010BD1C -/* 8010BCEC 80 1F 31 A0 */ lwz r0, 0x31a0(r31) -/* 8010BCF0 60 00 00 01 */ ori r0, r0, 1 -/* 8010BCF4 90 1F 31 A0 */ stw r0, 0x31a0(r31) -/* 8010BCF8 88 1F 2F 98 */ lbz r0, 0x2f98(r31) -/* 8010BCFC 28 00 00 02 */ cmplwi r0, 2 -/* 8010BD00 41 82 00 28 */ beq lbl_8010BD28 -/* 8010BD04 38 00 00 02 */ li r0, 2 -/* 8010BD08 98 1F 2F 98 */ stb r0, 0x2f98(r31) -/* 8010BD0C 3C 60 80 39 */ lis r3, m__19daAlinkHIO_basic_c0@ha /* 0x8038D664@ha */ -/* 8010BD10 38 63 D6 64 */ addi r3, r3, m__19daAlinkHIO_basic_c0@l /* 0x8038D664@l */ -/* 8010BD14 C3 E3 00 18 */ lfs f31, 0x18(r3) -/* 8010BD18 48 00 00 10 */ b lbl_8010BD28 -lbl_8010BD1C: -/* 8010BD1C 80 1F 31 A0 */ lwz r0, 0x31a0(r31) -/* 8010BD20 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e -/* 8010BD24 90 1F 31 A0 */ stw r0, 0x31a0(r31) -lbl_8010BD28: -/* 8010BD28 7F E3 FB 78 */ mr r3, r31 -/* 8010BD2C 4B FF CC ED */ bl checkHookshotWait__9daAlink_cCFv -/* 8010BD30 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BD34 41 82 00 20 */ beq lbl_8010BD54 -/* 8010BD38 7F E3 FB 78 */ mr r3, r31 -/* 8010BD3C FC 20 F8 90 */ fmr f1, f31 -/* 8010BD40 4B FA 2D 31 */ bl setBlendAtnMoveAnime__9daAlink_cFf -/* 8010BD44 7F E3 FB 78 */ mr r3, r31 -/* 8010BD48 38 80 00 00 */ li r4, 0 -/* 8010BD4C 4B FA F5 65 */ bl setBodyAngleXReadyAnime__9daAlink_cFi -/* 8010BD50 48 00 00 20 */ b lbl_8010BD70 -lbl_8010BD54: -/* 8010BD54 7F E3 FB 78 */ mr r3, r31 -/* 8010BD58 4B FF CB 71 */ bl checkChaseHookshot__9daAlink_cFv -/* 8010BD5C 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BD60 41 82 00 10 */ beq lbl_8010BD70 -/* 8010BD64 7F E3 FB 78 */ mr r3, r31 -/* 8010BD68 38 80 00 00 */ li r4, 0 -/* 8010BD6C 4B FA F5 45 */ bl setBodyAngleXReadyAnime__9daAlink_cFi -lbl_8010BD70: -/* 8010BD70 38 60 00 01 */ li r3, 1 -/* 8010BD74 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0 /* qr0 */ -/* 8010BD78 CB E1 00 10 */ lfd f31, 0x10(r1) -/* 8010BD7C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010BD80 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8010BD84 7C 08 03 A6 */ mtlr r0 -/* 8010BD88 38 21 00 20 */ addi r1, r1, 0x20 -/* 8010BD8C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHookshotSubject__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHookshotSubject__9daAlink_cFv.s deleted file mode 100644 index aa97359741..0000000000 --- a/asm/d/a/d_a_alink/procHookshotSubject__9daAlink_cFv.s +++ /dev/null @@ -1,53 +0,0 @@ -lbl_8010BB48: -/* 8010BB48 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8010BB4C 7C 08 02 A6 */ mflr r0 -/* 8010BB50 90 01 00 14 */ stw r0, 0x14(r1) -/* 8010BB54 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010BB58 7C 7F 1B 78 */ mr r31, r3 -/* 8010BB5C 4B FF CE BD */ bl checkHookshotWait__9daAlink_cCFv -/* 8010BB60 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BB64 41 82 00 10 */ beq lbl_8010BB74 -/* 8010BB68 7F E3 FB 78 */ mr r3, r31 -/* 8010BB6C 38 80 00 12 */ li r4, 0x12 -/* 8010BB70 4B FA 76 E1 */ bl setDoStatus__9daAlink_cFUc -lbl_8010BB74: -/* 8010BB74 7F E3 FB 78 */ mr r3, r31 -/* 8010BB78 38 80 00 00 */ li r4, 0 -/* 8010BB7C 4B FA 7B B9 */ bl setShapeAngleToAtnActor__9daAlink_cFi -/* 8010BB80 38 00 00 00 */ li r0, 0 -/* 8010BB84 98 1F 20 68 */ stb r0, 0x2068(r31) -/* 8010BB88 7F E3 FB 78 */ mr r3, r31 -/* 8010BB8C 38 80 00 00 */ li r4, 0 -/* 8010BB90 4B FA E5 41 */ bl checkNextAction__9daAlink_cFi -/* 8010BB94 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BB98 40 82 00 58 */ bne lbl_8010BBF0 -/* 8010BB9C 7F E3 FB 78 */ mr r3, r31 -/* 8010BBA0 4B FF CE 79 */ bl checkHookshotWait__9daAlink_cCFv -/* 8010BBA4 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BBA8 41 82 00 34 */ beq lbl_8010BBDC -/* 8010BBAC 7F E3 FB 78 */ mr r3, r31 -/* 8010BBB0 4B FC 2C F1 */ bl setBodyAngleToCamera__9daAlink_cFv -/* 8010BBB4 2C 03 00 00 */ cmpwi r3, 0 -/* 8010BBB8 41 82 00 0C */ beq lbl_8010BBC4 -/* 8010BBBC 7F E3 FB 78 */ mr r3, r31 -/* 8010BBC0 4B FF D1 F5 */ bl setHookshotSight__9daAlink_cFv -lbl_8010BBC4: -/* 8010BBC4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010BBC8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010BBCC 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 8010BBD0 54 00 03 98 */ rlwinm r0, r0, 0, 0xe, 0xc -/* 8010BBD4 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 8010BBD8 48 00 00 18 */ b lbl_8010BBF0 -lbl_8010BBDC: -/* 8010BBDC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010BBE0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8010BBE4 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 8010BBE8 64 00 00 04 */ oris r0, r0, 4 -/* 8010BBEC 90 03 5F 18 */ stw r0, 0x5f18(r3) -lbl_8010BBF0: -/* 8010BBF0 38 60 00 01 */ li r3, 1 -/* 8010BBF4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010BBF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8010BBFC 7C 08 03 A6 */ mtlr r0 -/* 8010BC00 38 21 00 10 */ addi r1, r1, 0x10 -/* 8010BC04 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setHookshotRoofWaitAnime__9daAlink_cFv.s b/asm/d/a/d_a_alink/setHookshotRoofWaitAnime__9daAlink_cFv.s deleted file mode 100644 index 855415359d..0000000000 --- a/asm/d/a/d_a_alink/setHookshotRoofWaitAnime__9daAlink_cFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_8010B2DC: -/* 8010B2DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8010B2E0 7C 08 02 A6 */ mflr r0 -/* 8010B2E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8010B2E8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010B2EC 7C 7F 1B 78 */ mr r31, r3 -/* 8010B2F0 4B FF D5 B1 */ bl checkHookshotRoofLv7Boss__9daAlink_cFv -/* 8010B2F4 2C 03 00 00 */ cmpwi r3, 0 -/* 8010B2F8 41 82 00 20 */ beq lbl_8010B318 -/* 8010B2FC A8 1F 30 20 */ lha r0, 0x3020(r31) -/* 8010B300 2C 00 00 00 */ cmpwi r0, 0 -/* 8010B304 40 82 00 0C */ bne lbl_8010B310 -/* 8010B308 38 80 01 71 */ li r4, 0x171 -/* 8010B30C 48 00 00 30 */ b lbl_8010B33C -lbl_8010B310: -/* 8010B310 38 80 01 70 */ li r4, 0x170 -/* 8010B314 48 00 00 28 */ b lbl_8010B33C -lbl_8010B318: -/* 8010B318 A8 1F 30 20 */ lha r0, 0x3020(r31) -/* 8010B31C 2C 00 00 00 */ cmpwi r0, 0 -/* 8010B320 38 00 01 2E */ li r0, 0x12e -/* 8010B324 40 82 00 08 */ bne lbl_8010B32C -/* 8010B328 38 00 01 2F */ li r0, 0x12f -lbl_8010B32C: -/* 8010B32C 7C 04 03 78 */ mr r4, r0 -/* 8010B330 80 1F 31 A0 */ lwz r0, 0x31a0(r31) -/* 8010B334 60 00 01 00 */ ori r0, r0, 0x100 -/* 8010B338 90 1F 31 A0 */ stw r0, 0x31a0(r31) -lbl_8010B33C: -/* 8010B33C 7F E3 FB 78 */ mr r3, r31 -/* 8010B340 C0 22 93 14 */ lfs f1, lit_7307(r2) -/* 8010B344 4B FA 1C 6D */ bl setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf -/* 8010B348 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010B34C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8010B350 7C 08 03 A6 */ mtlr r0 -/* 8010B354 38 21 00 10 */ addi r1, r1, 0x10 -/* 8010B358 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setHookshotTopPosFly__9daAlink_cFv.s b/asm/d/a/d_a_alink/setHookshotTopPosFly__9daAlink_cFv.s deleted file mode 100644 index 2bd7a6dc88..0000000000 --- a/asm/d/a/d_a_alink/setHookshotTopPosFly__9daAlink_cFv.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_80109AAC: -/* 80109AAC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80109AB0 7C 08 02 A6 */ mflr r0 -/* 80109AB4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80109AB8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80109ABC 48 25 87 21 */ bl _savegpr_29 -/* 80109AC0 7C 7F 1B 78 */ mr r31, r3 -/* 80109AC4 83 C3 28 50 */ lwz r30, 0x2850(r3) -/* 80109AC8 A8 03 30 1A */ lha r0, 0x301a(r3) -/* 80109ACC 2C 00 00 05 */ cmpwi r0, 5 -/* 80109AD0 40 82 00 4C */ bne lbl_80109B1C -/* 80109AD4 28 1E 00 00 */ cmplwi r30, 0 -/* 80109AD8 41 82 00 38 */ beq lbl_80109B10 -/* 80109ADC 80 1E 04 9C */ lwz r0, 0x49c(r30) -/* 80109AE0 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb -/* 80109AE4 41 82 00 2C */ beq lbl_80109B10 -/* 80109AE8 38 7E 04 D0 */ addi r3, r30, 0x4d0 -/* 80109AEC 4B F0 32 79 */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 80109AF0 38 7E 04 E4 */ addi r3, r30, 0x4e4 -/* 80109AF4 4B F0 34 51 */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 80109AF8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80109AFC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80109B00 38 9F 37 F8 */ addi r4, r31, 0x37f8 -/* 80109B04 38 BF 37 EC */ addi r5, r31, 0x37ec -/* 80109B08 48 23 D2 65 */ bl PSMTXMultVec -/* 80109B0C 48 00 00 B8 */ b lbl_80109BC4 -lbl_80109B10: -/* 80109B10 38 00 00 06 */ li r0, 6 -/* 80109B14 B0 1F 30 1A */ sth r0, 0x301a(r31) -/* 80109B18 48 00 00 AC */ b lbl_80109BC4 -lbl_80109B1C: -/* 80109B1C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80109B20 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80109B24 3B A3 0F 38 */ addi r29, r3, 0xf38 -/* 80109B28 7F A3 EB 78 */ mr r3, r29 -/* 80109B2C 38 9F 1E 2C */ addi r4, r31, 0x1e2c -/* 80109B30 4B F6 AB 31 */ bl ChkPolySafe__4cBgSFRC13cBgS_PolyInfo -/* 80109B34 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80109B38 41 82 00 2C */ beq lbl_80109B64 -/* 80109B3C 7F E3 FB 78 */ mr r3, r31 -/* 80109B40 38 9F 1E 2C */ addi r4, r31, 0x1e2c -/* 80109B44 4B FF EC 6D */ bl checkHookshotStickBG__9daAlink_cFR13cBgS_PolyInfo -/* 80109B48 2C 03 00 00 */ cmpwi r3, 0 -/* 80109B4C 41 82 00 18 */ beq lbl_80109B64 -/* 80109B50 28 1E 00 00 */ cmplwi r30, 0 -/* 80109B54 41 82 00 1C */ beq lbl_80109B70 -/* 80109B58 80 1E 04 9C */ lwz r0, 0x49c(r30) -/* 80109B5C 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb -/* 80109B60 40 82 00 10 */ bne lbl_80109B70 -lbl_80109B64: -/* 80109B64 38 00 00 06 */ li r0, 6 -/* 80109B68 B0 1F 30 1A */ sth r0, 0x301a(r31) -/* 80109B6C 48 00 00 58 */ b lbl_80109BC4 -lbl_80109B70: -/* 80109B70 7F A3 EB 78 */ mr r3, r29 -/* 80109B74 38 9F 1E 2C */ addi r4, r31, 0x1e2c -/* 80109B78 4B F6 AF 45 */ bl ChkMoveBG__4dBgSFRC13cBgS_PolyInfo -/* 80109B7C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80109B80 41 82 00 44 */ beq lbl_80109BC4 -/* 80109B84 38 61 00 08 */ addi r3, r1, 8 -/* 80109B88 A8 9F 30 1C */ lha r4, 0x301c(r31) -/* 80109B8C A8 BF 30 1E */ lha r5, 0x301e(r31) -/* 80109B90 38 C0 00 00 */ li r6, 0 -/* 80109B94 48 15 D8 61 */ bl __ct__5csXyzFsss -/* 80109B98 7F A3 EB 78 */ mr r3, r29 -/* 80109B9C 38 9F 1E 2C */ addi r4, r31, 0x1e2c -/* 80109BA0 38 A0 00 01 */ li r5, 1 -/* 80109BA4 38 DF 37 EC */ addi r6, r31, 0x37ec -/* 80109BA8 38 E0 00 00 */ li r7, 0 -/* 80109BAC 39 01 00 08 */ addi r8, r1, 8 -/* 80109BB0 4B F6 BC D1 */ bl MoveBgTransPos__4dBgSFRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz -/* 80109BB4 A8 01 00 08 */ lha r0, 8(r1) -/* 80109BB8 B0 1F 30 1C */ sth r0, 0x301c(r31) -/* 80109BBC A8 01 00 0A */ lha r0, 0xa(r1) -/* 80109BC0 B0 1F 30 1E */ sth r0, 0x301e(r31) -lbl_80109BC4: -/* 80109BC4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80109BC8 48 25 86 61 */ bl _restgpr_29 -/* 80109BCC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80109BD0 7C 08 03 A6 */ mtlr r0 -/* 80109BD4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80109BD8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setHookshotWallWaitAnime__9daAlink_cFv.s b/asm/d/a/d_a_alink/setHookshotWallWaitAnime__9daAlink_cFv.s deleted file mode 100644 index 13eef64703..0000000000 --- a/asm/d/a/d_a_alink/setHookshotWallWaitAnime__9daAlink_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8010B35C: -/* 8010B35C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8010B360 7C 08 02 A6 */ mflr r0 -/* 8010B364 90 01 00 14 */ stw r0, 0x14(r1) -/* 8010B368 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010B36C 7C 7F 1B 78 */ mr r31, r3 -/* 8010B370 A8 03 30 20 */ lha r0, 0x3020(r3) -/* 8010B374 2C 00 00 00 */ cmpwi r0, 0 -/* 8010B378 38 80 01 38 */ li r4, 0x138 -/* 8010B37C 40 82 00 08 */ bne lbl_8010B384 -/* 8010B380 38 80 01 39 */ li r4, 0x139 -lbl_8010B384: -/* 8010B384 C0 22 93 14 */ lfs f1, lit_7307(r2) -/* 8010B388 4B FA 1C 29 */ bl setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf -/* 8010B38C 80 1F 31 A0 */ lwz r0, 0x31a0(r31) -/* 8010B390 60 00 01 00 */ ori r0, r0, 0x100 -/* 8010B394 90 1F 31 A0 */ stw r0, 0x31a0(r31) -/* 8010B398 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8010B39C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8010B3A0 7C 08 03 A6 */ mtlr r0 -/* 8010B3A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8010B3A8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz.s b/asm/d/a/d_a_player/bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz.s deleted file mode 100644 index 4a42353ceb..0000000000 --- a/asm/d/a/d_a_player/bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz.s +++ /dev/null @@ -1,111 +0,0 @@ -lbl_8015E87C: -/* 8015E87C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8015E880 7C 08 02 A6 */ mflr r0 -/* 8015E884 90 01 00 44 */ stw r0, 0x44(r1) -/* 8015E888 39 61 00 40 */ addi r11, r1, 0x40 -/* 8015E88C 48 20 39 51 */ bl _savegpr_29 -/* 8015E890 7C 7D 1B 78 */ mr r29, r3 -/* 8015E894 7C 9E 23 78 */ mr r30, r4 -/* 8015E898 48 00 10 39 */ bl getThrowBoomerangActor__9daPy_py_cFv -/* 8015E89C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8015E8A0 41 82 01 54 */ beq lbl_8015E9F4 -/* 8015E8A4 C0 3E 00 04 */ lfs f1, 4(r30) -/* 8015E8A8 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 8015E8AC EC 01 00 28 */ fsubs f0, f1, f0 -/* 8015E8B0 D0 1D 00 04 */ stfs f0, 4(r29) -/* 8015E8B4 C0 5F 04 D8 */ lfs f2, 0x4d8(r31) -/* 8015E8B8 C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 8015E8BC D0 01 00 0C */ stfs f0, 0xc(r1) -/* 8015E8C0 C0 22 9C 00 */ lfs f1, lit_4215(r2) -/* 8015E8C4 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 8015E8C8 D0 41 00 14 */ stfs f2, 0x14(r1) -/* 8015E8CC C0 5E 00 08 */ lfs f2, 8(r30) -/* 8015E8D0 C0 1E 00 00 */ lfs f0, 0(r30) -/* 8015E8D4 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 8015E8D8 D0 21 00 1C */ stfs f1, 0x1c(r1) -/* 8015E8DC D0 41 00 20 */ stfs f2, 0x20(r1) -/* 8015E8E0 38 61 00 0C */ addi r3, r1, 0xc -/* 8015E8E4 38 81 00 18 */ addi r4, r1, 0x18 -/* 8015E8E8 48 1E 8A B5 */ bl PSVECSquareDistance -/* 8015E8EC C0 02 9C 00 */ lfs f0, lit_4215(r2) -/* 8015E8F0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8015E8F4 40 81 00 58 */ ble lbl_8015E94C -/* 8015E8F8 FC 00 08 34 */ frsqrte f0, f1 -/* 8015E8FC C8 82 9C 30 */ lfd f4, lit_4379(r2) -/* 8015E900 FC 44 00 32 */ fmul f2, f4, f0 -/* 8015E904 C8 62 9C 38 */ lfd f3, lit_4380(r2) -/* 8015E908 FC 00 00 32 */ fmul f0, f0, f0 -/* 8015E90C FC 01 00 32 */ fmul f0, f1, f0 -/* 8015E910 FC 03 00 28 */ fsub f0, f3, f0 -/* 8015E914 FC 02 00 32 */ fmul f0, f2, f0 -/* 8015E918 FC 44 00 32 */ fmul f2, f4, f0 -/* 8015E91C FC 00 00 32 */ fmul f0, f0, f0 -/* 8015E920 FC 01 00 32 */ fmul f0, f1, f0 -/* 8015E924 FC 03 00 28 */ fsub f0, f3, f0 -/* 8015E928 FC 02 00 32 */ fmul f0, f2, f0 -/* 8015E92C FC 44 00 32 */ fmul f2, f4, f0 -/* 8015E930 FC 00 00 32 */ fmul f0, f0, f0 -/* 8015E934 FC 01 00 32 */ fmul f0, f1, f0 -/* 8015E938 FC 03 00 28 */ fsub f0, f3, f0 -/* 8015E93C FC 02 00 32 */ fmul f0, f2, f0 -/* 8015E940 FC 21 00 32 */ fmul f1, f1, f0 -/* 8015E944 FC 20 08 18 */ frsp f1, f1 -/* 8015E948 48 00 00 88 */ b lbl_8015E9D0 -lbl_8015E94C: -/* 8015E94C C8 02 9C 40 */ lfd f0, lit_4381(r2) -/* 8015E950 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8015E954 40 80 00 10 */ bge lbl_8015E964 -/* 8015E958 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 8015E95C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 8015E960 48 00 00 70 */ b lbl_8015E9D0 -lbl_8015E964: -/* 8015E964 D0 21 00 08 */ stfs f1, 8(r1) -/* 8015E968 80 81 00 08 */ lwz r4, 8(r1) -/* 8015E96C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8 -/* 8015E970 3C 00 7F 80 */ lis r0, 0x7f80 -/* 8015E974 7C 03 00 00 */ cmpw r3, r0 -/* 8015E978 41 82 00 14 */ beq lbl_8015E98C -/* 8015E97C 40 80 00 40 */ bge lbl_8015E9BC -/* 8015E980 2C 03 00 00 */ cmpwi r3, 0 -/* 8015E984 41 82 00 20 */ beq lbl_8015E9A4 -/* 8015E988 48 00 00 34 */ b lbl_8015E9BC -lbl_8015E98C: -/* 8015E98C 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 8015E990 41 82 00 0C */ beq lbl_8015E99C -/* 8015E994 38 00 00 01 */ li r0, 1 -/* 8015E998 48 00 00 28 */ b lbl_8015E9C0 -lbl_8015E99C: -/* 8015E99C 38 00 00 02 */ li r0, 2 -/* 8015E9A0 48 00 00 20 */ b lbl_8015E9C0 -lbl_8015E9A4: -/* 8015E9A4 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 8015E9A8 41 82 00 0C */ beq lbl_8015E9B4 -/* 8015E9AC 38 00 00 05 */ li r0, 5 -/* 8015E9B0 48 00 00 10 */ b lbl_8015E9C0 -lbl_8015E9B4: -/* 8015E9B4 38 00 00 03 */ li r0, 3 -/* 8015E9B8 48 00 00 08 */ b lbl_8015E9C0 -lbl_8015E9BC: -/* 8015E9BC 38 00 00 04 */ li r0, 4 -lbl_8015E9C0: -/* 8015E9C0 2C 00 00 01 */ cmpwi r0, 1 -/* 8015E9C4 40 82 00 0C */ bne lbl_8015E9D0 -/* 8015E9C8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 8015E9CC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -lbl_8015E9D0: -/* 8015E9D0 D0 3D 00 08 */ stfs f1, 8(r29) -/* 8015E9D4 C0 3E 00 00 */ lfs f1, 0(r30) -/* 8015E9D8 C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 8015E9DC EC 21 00 28 */ fsubs f1, f1, f0 -/* 8015E9E0 C0 5E 00 08 */ lfs f2, 8(r30) -/* 8015E9E4 C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 8015E9E8 EC 42 00 28 */ fsubs f2, f2, f0 -/* 8015E9EC 48 10 8C 89 */ bl cM_atan2s__Fff -/* 8015E9F0 B0 7D 00 02 */ sth r3, 2(r29) -lbl_8015E9F4: -/* 8015E9F4 39 61 00 40 */ addi r11, r1, 0x40 -/* 8015E9F8 48 20 38 31 */ bl _restgpr_29 -/* 8015E9FC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8015EA00 7C 08 03 A6 */ mtlr r0 -/* 8015EA04 38 21 00 40 */ addi r1, r1, 0x40 -/* 8015EA08 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkSpinnerReflectEffect__9daPy_py_cFv.s b/asm/d/a/d_a_player/checkSpinnerReflectEffect__9daPy_py_cFv.s deleted file mode 100644 index 54e9e827ed..0000000000 --- a/asm/d/a/d_a_player/checkSpinnerReflectEffect__9daPy_py_cFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_8015F814: -/* 8015F814 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F818 7C 08 02 A6 */ mflr r0 -/* 8015F81C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F820 81 83 06 28 */ lwz r12, 0x628(r3) -/* 8015F824 81 8C 01 9C */ lwz r12, 0x19c(r12) -/* 8015F828 7D 89 03 A6 */ mtctr r12 -/* 8015F82C 4E 80 04 21 */ bctrl -/* 8015F830 28 03 00 00 */ cmplwi r3, 0 -/* 8015F834 41 82 00 54 */ beq lbl_8015F888 -/* 8015F838 38 80 00 00 */ li r4, 0 -/* 8015F83C 38 A0 00 01 */ li r5, 1 -/* 8015F840 88 03 05 71 */ lbz r0, 0x571(r3) -/* 8015F844 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 8015F848 40 82 00 18 */ bne lbl_8015F860 -/* 8015F84C C0 22 9C 00 */ lfs f1, lit_4215(r2) -/* 8015F850 C0 03 05 78 */ lfs f0, 0x578(r3) -/* 8015F854 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8015F858 41 82 00 08 */ beq lbl_8015F860 -/* 8015F85C 7C 85 23 78 */ mr r5, r4 -lbl_8015F860: -/* 8015F860 54 A0 06 3F */ clrlwi. r0, r5, 0x18 -/* 8015F864 40 82 00 14 */ bne lbl_8015F878 -/* 8015F868 88 03 0A 6F */ lbz r0, 0xa6f(r3) -/* 8015F86C 28 00 00 00 */ cmplwi r0, 0 -/* 8015F870 40 82 00 08 */ bne lbl_8015F878 -/* 8015F874 38 80 00 01 */ li r4, 1 -lbl_8015F878: -/* 8015F878 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 8015F87C 41 82 00 0C */ beq lbl_8015F888 -/* 8015F880 38 60 00 01 */ li r3, 1 -/* 8015F884 48 00 00 08 */ b lbl_8015F88C -lbl_8015F888: -/* 8015F888 38 60 00 00 */ li r3, 0 -lbl_8015F88C: -/* 8015F88C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F890 7C 08 03 A6 */ mtlr r0 -/* 8015F894 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F898 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/draw__18daPy_sightPacket_cFv.s b/asm/d/a/d_a_player/draw__18daPy_sightPacket_cFv.s deleted file mode 100644 index 96c3b10ec4..0000000000 --- a/asm/d/a/d_a_player/draw__18daPy_sightPacket_cFv.s +++ /dev/null @@ -1,88 +0,0 @@ -lbl_8015F1A0: -/* 8015F1A0 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8015F1A4 7C 08 02 A6 */ mflr r0 -/* 8015F1A8 90 01 00 44 */ stw r0, 0x44(r1) -/* 8015F1AC 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 8015F1B0 7C 7F 1B 78 */ mr r31, r3 -/* 8015F1B4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 8015F1B8 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8015F1BC 48 1B 15 81 */ bl reinitGX__6J3DSysFv -/* 8015F1C0 38 60 00 00 */ li r3, 0 -/* 8015F1C4 48 1F FF 11 */ bl GXSetNumIndStages -/* 8015F1C8 48 1F C3 C5 */ bl GXClearVtxDesc -/* 8015F1CC 38 60 00 09 */ li r3, 9 -/* 8015F1D0 38 80 00 01 */ li r4, 1 -/* 8015F1D4 48 1F BC E5 */ bl GXSetVtxDesc -/* 8015F1D8 38 60 00 0D */ li r3, 0xd -/* 8015F1DC 38 80 00 01 */ li r4, 1 -/* 8015F1E0 48 1F BC D9 */ bl GXSetVtxDesc -/* 8015F1E4 38 60 00 00 */ li r3, 0 -/* 8015F1E8 38 80 00 09 */ li r4, 9 -/* 8015F1EC 38 A0 00 01 */ li r5, 1 -/* 8015F1F0 38 C0 00 01 */ li r6, 1 -/* 8015F1F4 38 E0 00 00 */ li r7, 0 -/* 8015F1F8 48 1F C3 CD */ bl GXSetVtxAttrFmt -/* 8015F1FC 38 60 00 00 */ li r3, 0 -/* 8015F200 38 80 00 0D */ li r4, 0xd -/* 8015F204 38 A0 00 01 */ li r5, 1 -/* 8015F208 38 C0 00 00 */ li r6, 0 -/* 8015F20C 38 E0 00 00 */ li r7, 0 -/* 8015F210 48 1F C3 B5 */ bl GXSetVtxAttrFmt -/* 8015F214 80 02 9C 7C */ lwz r0, lit_4669(r2) -/* 8015F218 90 01 00 10 */ stw r0, 0x10(r1) -/* 8015F21C 80 02 9C 78 */ lwz r0, lit_4668(r2) -/* 8015F220 90 01 00 0C */ stw r0, 0xc(r1) -/* 8015F224 38 60 00 01 */ li r3, 1 -/* 8015F228 38 81 00 0C */ addi r4, r1, 0xc -/* 8015F22C 48 20 01 51 */ bl GXSetTevColor -/* 8015F230 80 01 00 10 */ lwz r0, 0x10(r1) -/* 8015F234 90 01 00 08 */ stw r0, 8(r1) -/* 8015F238 38 60 00 02 */ li r3, 2 -/* 8015F23C 38 81 00 08 */ addi r4, r1, 8 -/* 8015F240 48 20 01 3D */ bl GXSetTevColor -/* 8015F244 81 3F 00 44 */ lwz r9, 0x44(r31) -/* 8015F248 88 09 00 18 */ lbz r0, 0x18(r9) -/* 8015F24C 20 00 00 01 */ subfic r0, r0, 1 -/* 8015F250 54 0A 0F FE */ srwi r10, r0, 0x1f -/* 8015F254 38 61 00 14 */ addi r3, r1, 0x14 -/* 8015F258 80 9F 00 48 */ lwz r4, 0x48(r31) -/* 8015F25C A0 A9 00 02 */ lhz r5, 2(r9) -/* 8015F260 A0 C9 00 04 */ lhz r6, 4(r9) -/* 8015F264 88 E9 00 00 */ lbz r7, 0(r9) -/* 8015F268 89 09 00 06 */ lbz r8, 6(r9) -/* 8015F26C 89 29 00 07 */ lbz r9, 7(r9) -/* 8015F270 48 1F EB D1 */ bl GXInitTexObj -/* 8015F274 38 61 00 14 */ addi r3, r1, 0x14 -/* 8015F278 38 80 00 01 */ li r4, 1 -/* 8015F27C 38 A0 00 01 */ li r5, 1 -/* 8015F280 C0 22 9C 00 */ lfs f1, lit_4215(r2) -/* 8015F284 FC 40 08 90 */ fmr f2, f1 -/* 8015F288 FC 60 08 90 */ fmr f3, f1 -/* 8015F28C 38 C0 00 00 */ li r6, 0 -/* 8015F290 38 E0 00 00 */ li r7, 0 -/* 8015F294 39 00 00 00 */ li r8, 0 -/* 8015F298 48 1F EE 3D */ bl GXInitTexObjLOD -/* 8015F29C 38 61 00 14 */ addi r3, r1, 0x14 -/* 8015F2A0 38 80 00 00 */ li r4, 0 -/* 8015F2A4 48 1F F1 71 */ bl GXLoadTexObj -/* 8015F2A8 38 7F 00 14 */ addi r3, r31, 0x14 -/* 8015F2AC 38 80 00 00 */ li r4, 0 -/* 8015F2B0 48 20 0F 9D */ bl GXLoadPosMtxImm -/* 8015F2B4 38 60 00 00 */ li r3, 0 -/* 8015F2B8 48 20 10 35 */ bl GXSetCurrentMtx -/* 8015F2BC 38 60 00 00 */ li r3, 0 -/* 8015F2C0 38 80 00 00 */ li r4, 0 -/* 8015F2C4 38 A0 00 00 */ li r5, 0 -/* 8015F2C8 38 C0 00 FF */ li r6, 0xff -/* 8015F2CC 48 20 04 29 */ bl GXSetTevOrder -/* 8015F2D0 3C 60 80 3C */ lis r3, l_sightDL@ha /* 0x803BA0C0@ha */ -/* 8015F2D4 38 63 A0 C0 */ addi r3, r3, l_sightDL@l /* 0x803BA0C0@l */ -/* 8015F2D8 38 80 00 80 */ li r4, 0x80 -/* 8015F2DC 48 20 0C 15 */ bl GXCallDisplayList -/* 8015F2E0 38 00 00 00 */ li r0, 0 -/* 8015F2E4 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -/* 8015F2E8 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 8015F2EC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8015F2F0 7C 08 03 A6 */ mtlr r0 -/* 8015F2F4 38 21 00 40 */ addi r1, r1, 0x40 -/* 8015F2F8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s b/asm/d/a/d_a_player/linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s deleted file mode 100644 index 3d2caee86b..0000000000 --- a/asm/d/a/d_a_player/linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_8015F55C: -/* 8015F55C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8015F560 7C 08 02 A6 */ mflr r0 -/* 8015F564 90 01 00 24 */ stw r0, 0x24(r1) -/* 8015F568 39 61 00 20 */ addi r11, r1, 0x20 -/* 8015F56C 48 20 2C 71 */ bl _savegpr_29 -/* 8015F570 3B E0 00 00 */ li r31, 0 -/* 8015F574 7F FE FB 78 */ mr r30, r31 -/* 8015F578 80 03 04 9C */ lwz r0, 0x49c(r3) -/* 8015F57C 54 00 04 A5 */ rlwinm. r0, r0, 0, 0x12, 0x12 -/* 8015F580 41 82 00 40 */ beq lbl_8015F5C0 -/* 8015F584 28 03 00 00 */ cmplwi r3, 0 -/* 8015F588 41 82 00 0C */ beq lbl_8015F594 -/* 8015F58C 83 A3 00 04 */ lwz r29, 4(r3) -/* 8015F590 48 00 00 08 */ b lbl_8015F598 -lbl_8015F594: -/* 8015F594 3B A0 FF FF */ li r29, -1 -lbl_8015F598: -/* 8015F598 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F59C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F5A0 80 63 5D AC */ lwz r3, 0x5dac(r3) -/* 8015F5A4 81 83 06 28 */ lwz r12, 0x628(r3) -/* 8015F5A8 81 8C 00 FC */ lwz r12, 0xfc(r12) -/* 8015F5AC 7D 89 03 A6 */ mtctr r12 -/* 8015F5B0 4E 80 04 21 */ bctrl -/* 8015F5B4 7C 03 E8 40 */ cmplw r3, r29 -/* 8015F5B8 40 82 00 08 */ bne lbl_8015F5C0 -/* 8015F5BC 3B C0 00 01 */ li r30, 1 -lbl_8015F5C0: -/* 8015F5C0 57 C0 06 3F */ clrlwi. r0, r30, 0x18 -/* 8015F5C4 41 82 00 2C */ beq lbl_8015F5F0 -/* 8015F5C8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F5CC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F5D0 88 03 5D B0 */ lbz r0, 0x5db0(r3) -/* 8015F5D4 7C 00 07 74 */ extsb r0, r0 -/* 8015F5D8 1C 00 00 38 */ mulli r0, r0, 0x38 -/* 8015F5DC 7C 63 02 14 */ add r3, r3, r0 -/* 8015F5E0 80 03 5D 7C */ lwz r0, 0x5d7c(r3) -/* 8015F5E4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 8015F5E8 41 82 00 08 */ beq lbl_8015F5F0 -/* 8015F5EC 3B E0 00 01 */ li r31, 1 -lbl_8015F5F0: -/* 8015F5F0 7F E3 FB 78 */ mr r3, r31 -/* 8015F5F4 39 61 00 20 */ addi r11, r1, 0x20 -/* 8015F5F8 48 20 2C 31 */ bl _restgpr_29 -/* 8015F5FC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8015F600 7C 08 03 A6 */ mtlr r0 -/* 8015F604 38 21 00 20 */ addi r1, r1, 0x20 -/* 8015F608 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/__dt__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/__dt__10daAndsw2_cFv.s deleted file mode 100644 index e217480c8a..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/__dt__10daAndsw2_cFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_804D60CC: -/* 804D60CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D60D0 7C 08 02 A6 */ mflr r0 -/* 804D60D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D60D8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D60DC 93 C1 00 08 */ stw r30, 8(r1) -/* 804D60E0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 804D60E4 7C 9F 23 78 */ mr r31, r4 -/* 804D60E8 41 82 00 1C */ beq lbl_804D6104 -/* 804D60EC 38 80 00 00 */ li r4, 0 -/* 804D60F0 4B B4 2B 9D */ bl __dt__10fopAc_ac_cFv -/* 804D60F4 7F E0 07 35 */ extsh. r0, r31 -/* 804D60F8 40 81 00 0C */ ble lbl_804D6104 -/* 804D60FC 7F C3 F3 78 */ mr r3, r30 -/* 804D6100 4B DF 8C 3D */ bl __dl__FPv -lbl_804D6104: -/* 804D6104 7F C3 F3 78 */ mr r3, r30 -/* 804D6108 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D610C 83 C1 00 08 */ lwz r30, 8(r1) -/* 804D6110 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D6114 7C 08 03 A6 */ mtlr r0 -/* 804D6118 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D611C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkAllSw2__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkAllSw2__10daAndsw2_cFv.s deleted file mode 100644 index 9b2779c535..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkAllSw2__10daAndsw2_cFv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_804D5EBC: -/* 804D5EBC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 804D5EC0 7C 08 02 A6 */ mflr r0 -/* 804D5EC4 90 01 00 24 */ stw r0, 0x24(r1) -/* 804D5EC8 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D5ECC 4B E8 C3 09 */ bl _savegpr_27 -/* 804D5ED0 7C 7B 1B 78 */ mr r27, r3 -/* 804D5ED4 4B FF FF 6D */ bl getTopSw__10daAndsw2_cFv -/* 804D5ED8 54 7E 06 3E */ clrlwi r30, r3, 0x18 -/* 804D5EDC 7F 63 DB 78 */ mr r3, r27 -/* 804D5EE0 4B FF FF 55 */ bl getNum__10daAndsw2_cFv -/* 804D5EE4 54 7D 06 3E */ clrlwi r29, r3, 0x18 -/* 804D5EE8 2C 1D 00 FF */ cmpwi r29, 0xff -/* 804D5EEC 41 82 00 14 */ beq lbl_804D5F00 -/* 804D5EF0 2C 1D 00 00 */ cmpwi r29, 0 -/* 804D5EF4 41 82 00 0C */ beq lbl_804D5F00 -/* 804D5EF8 2C 1E 00 FF */ cmpwi r30, 0xff -/* 804D5EFC 40 82 00 0C */ bne lbl_804D5F08 -lbl_804D5F00: -/* 804D5F00 38 60 00 00 */ li r3, 0 -/* 804D5F04 48 00 00 48 */ b lbl_804D5F4C -lbl_804D5F08: -/* 804D5F08 3B 80 00 00 */ li r28, 0 -/* 804D5F0C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D5F10 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D5F14 48 00 00 2C */ b lbl_804D5F40 -lbl_804D5F18: -/* 804D5F18 7F E3 FB 78 */ mr r3, r31 -/* 804D5F1C 7C 9E E2 14 */ add r4, r30, r28 -/* 804D5F20 88 1B 04 E2 */ lbz r0, 0x4e2(r27) -/* 804D5F24 7C 05 07 74 */ extsb r5, r0 -/* 804D5F28 4B B5 F4 39 */ bl isSwitch__10dSv_info_cCFii -/* 804D5F2C 2C 03 00 00 */ cmpwi r3, 0 -/* 804D5F30 40 82 00 0C */ bne lbl_804D5F3C -/* 804D5F34 38 60 00 00 */ li r3, 0 -/* 804D5F38 48 00 00 14 */ b lbl_804D5F4C -lbl_804D5F3C: -/* 804D5F3C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_804D5F40: -/* 804D5F40 7C 1C E8 00 */ cmpw r28, r29 -/* 804D5F44 41 80 FF D4 */ blt lbl_804D5F18 -/* 804D5F48 38 60 00 01 */ li r3, 1 -lbl_804D5F4C: -/* 804D5F4C 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D5F50 4B E8 C2 D1 */ bl _restgpr_27 -/* 804D5F54 80 01 00 24 */ lwz r0, 0x24(r1) -/* 804D5F58 7C 08 03 A6 */ mtlr r0 -/* 804D5F5C 38 21 00 20 */ addi r1, r1, 0x20 -/* 804D5F60 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus2__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus2__10daAndsw2_cFv.s deleted file mode 100644 index 026b3bef59..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus2__10daAndsw2_cFv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_804D6024: -/* 804D6024 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 804D6028 7C 08 02 A6 */ mflr r0 -/* 804D602C 90 01 00 24 */ stw r0, 0x24(r1) -/* 804D6030 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D6034 4B E8 C1 A1 */ bl _savegpr_27 -/* 804D6038 7C 7B 1B 78 */ mr r27, r3 -/* 804D603C 4B FF FE 05 */ bl getTopSw__10daAndsw2_cFv -/* 804D6040 54 7E 06 3E */ clrlwi r30, r3, 0x18 -/* 804D6044 7F 63 DB 78 */ mr r3, r27 -/* 804D6048 4B FF FD ED */ bl getNum__10daAndsw2_cFv -/* 804D604C 54 7D 06 3E */ clrlwi r29, r3, 0x18 -/* 804D6050 2C 1D 00 FF */ cmpwi r29, 0xff -/* 804D6054 41 82 00 14 */ beq lbl_804D6068 -/* 804D6058 2C 1D 00 00 */ cmpwi r29, 0 -/* 804D605C 41 82 00 0C */ beq lbl_804D6068 -/* 804D6060 2C 1E 00 FF */ cmpwi r30, 0xff -/* 804D6064 40 82 00 0C */ bne lbl_804D6070 -lbl_804D6068: -/* 804D6068 38 60 00 00 */ li r3, 0 -/* 804D606C 48 00 00 48 */ b lbl_804D60B4 -lbl_804D6070: -/* 804D6070 3B 80 00 00 */ li r28, 0 -/* 804D6074 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6078 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D607C 48 00 00 2C */ b lbl_804D60A8 -lbl_804D6080: -/* 804D6080 7F E3 FB 78 */ mr r3, r31 -/* 804D6084 7C 9E E2 14 */ add r4, r30, r28 -/* 804D6088 88 1B 04 E2 */ lbz r0, 0x4e2(r27) -/* 804D608C 7C 05 07 74 */ extsb r5, r0 -/* 804D6090 4B B5 F2 D1 */ bl isSwitch__10dSv_info_cCFii -/* 804D6094 2C 03 00 00 */ cmpwi r3, 0 -/* 804D6098 41 82 00 0C */ beq lbl_804D60A4 -/* 804D609C 38 60 00 01 */ li r3, 1 -/* 804D60A0 48 00 00 14 */ b lbl_804D60B4 -lbl_804D60A4: -/* 804D60A4 3B 9C 00 01 */ addi r28, r28, 1 -lbl_804D60A8: -/* 804D60A8 7C 1C E8 00 */ cmpw r28, r29 -/* 804D60AC 41 80 FF D4 */ blt lbl_804D6080 -/* 804D60B0 38 60 00 00 */ li r3, 0 -lbl_804D60B4: -/* 804D60B4 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D60B8 4B E8 C1 69 */ bl _restgpr_27 -/* 804D60BC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 804D60C0 7C 08 03 A6 */ mtlr r0 -/* 804D60C4 38 21 00 20 */ addi r1, r1, 0x20 -/* 804D60C8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus__10daAndsw2_cFv.s deleted file mode 100644 index 16cee86fb0..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus__10daAndsw2_cFv.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_804D5F64: -/* 804D5F64 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 804D5F68 7C 08 02 A6 */ mflr r0 -/* 804D5F6C 90 01 00 24 */ stw r0, 0x24(r1) -/* 804D5F70 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D5F74 4B E8 C2 5D */ bl _savegpr_26 -/* 804D5F78 7C 7A 1B 78 */ mr r26, r3 -/* 804D5F7C 4B FF FE C5 */ bl getTopSw__10daAndsw2_cFv -/* 804D5F80 54 7E 06 3E */ clrlwi r30, r3, 0x18 -/* 804D5F84 7F 43 D3 78 */ mr r3, r26 -/* 804D5F88 4B FF FE AD */ bl getNum__10daAndsw2_cFv -/* 804D5F8C 54 7D 06 3E */ clrlwi r29, r3, 0x18 -/* 804D5F90 3B 80 00 00 */ li r28, 0 -/* 804D5F94 2C 1D 00 FF */ cmpwi r29, 0xff -/* 804D5F98 41 82 00 14 */ beq lbl_804D5FAC -/* 804D5F9C 2C 1D 00 00 */ cmpwi r29, 0 -/* 804D5FA0 41 82 00 0C */ beq lbl_804D5FAC -/* 804D5FA4 2C 1E 00 FF */ cmpwi r30, 0xff -/* 804D5FA8 40 82 00 0C */ bne lbl_804D5FB4 -lbl_804D5FAC: -/* 804D5FAC 38 60 00 00 */ li r3, 0 -/* 804D5FB0 48 00 00 5C */ b lbl_804D600C -lbl_804D5FB4: -/* 804D5FB4 3B 60 00 00 */ li r27, 0 -/* 804D5FB8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D5FBC 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D5FC0 48 00 00 28 */ b lbl_804D5FE8 -lbl_804D5FC4: -/* 804D5FC4 7F E3 FB 78 */ mr r3, r31 -/* 804D5FC8 7C 9E DA 14 */ add r4, r30, r27 -/* 804D5FCC 88 1A 04 E2 */ lbz r0, 0x4e2(r26) -/* 804D5FD0 7C 05 07 74 */ extsb r5, r0 -/* 804D5FD4 4B B5 F3 8D */ bl isSwitch__10dSv_info_cCFii -/* 804D5FD8 7C 60 D8 30 */ slw r0, r3, r27 -/* 804D5FDC 7F 80 03 78 */ or r0, r28, r0 -/* 804D5FE0 54 1C 06 3E */ clrlwi r28, r0, 0x18 -/* 804D5FE4 3B 7B 00 01 */ addi r27, r27, 1 -lbl_804D5FE8: -/* 804D5FE8 7C 1B E8 00 */ cmpw r27, r29 -/* 804D5FEC 41 80 FF D8 */ blt lbl_804D5FC4 -/* 804D5FF0 7F 43 D3 78 */ mr r3, r26 -/* 804D5FF4 4B FF FE BD */ bl getSwAns__10daAndsw2_cFv -/* 804D5FF8 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 804D5FFC 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 804D6000 7C 00 18 50 */ subf r0, r0, r3 -/* 804D6004 7C 00 00 34 */ cntlzw r0, r0 -/* 804D6008 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f -lbl_804D600C: -/* 804D600C 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D6010 4B E8 C2 0D */ bl _restgpr_26 -/* 804D6014 80 01 00 24 */ lwz r0, 0x24(r1) -/* 804D6018 7C 08 03 A6 */ mtlr r0 -/* 804D601C 38 21 00 20 */ addi r1, r1, 0x20 -/* 804D6020 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/create__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/create__10daAndsw2_cFv.s deleted file mode 100644 index 3e99c8916a..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/create__10daAndsw2_cFv.s +++ /dev/null @@ -1,184 +0,0 @@ -lbl_804D6120: -/* 804D6120 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D6124 7C 08 02 A6 */ mflr r0 -/* 804D6128 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D612C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D6130 93 C1 00 08 */ stw r30, 8(r1) -/* 804D6134 7C 7E 1B 78 */ mr r30, r3 -/* 804D6138 4B FF FC CD */ bl getSwbit__10daAndsw2_cFv -/* 804D613C 54 7F 06 3E */ clrlwi r31, r3, 0x18 -/* 804D6140 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 804D6144 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 804D6148 40 82 00 20 */ bne lbl_804D6168 -/* 804D614C 28 1E 00 00 */ cmplwi r30, 0 -/* 804D6150 41 82 00 0C */ beq lbl_804D615C -/* 804D6154 7F C3 F3 78 */ mr r3, r30 -/* 804D6158 4B B4 2A 0D */ bl __ct__10fopAc_ac_cFv -lbl_804D615C: -/* 804D615C 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 804D6160 60 00 00 08 */ ori r0, r0, 8 -/* 804D6164 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_804D6168: -/* 804D6168 7F C3 F3 78 */ mr r3, r30 -/* 804D616C 4B FF FC B1 */ bl getType__10daAndsw2_cFv -/* 804D6170 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6174 28 00 00 06 */ cmplwi r0, 6 -/* 804D6178 41 81 01 F4 */ bgt lbl_804D636C -/* 804D617C 3C 60 80 4D */ lis r3, lit_3821@ha /* 0x804D6AC8@ha */ -/* 804D6180 38 63 6A C8 */ addi r3, r3, lit_3821@l /* 0x804D6AC8@l */ -/* 804D6184 54 00 10 3A */ slwi r0, r0, 2 -/* 804D6188 7C 03 00 2E */ lwzx r0, r3, r0 -/* 804D618C 7C 09 03 A6 */ mtctr r0 -/* 804D6190 4E 80 04 20 */ bctr -lbl_804D6194: -/* 804D6194 2C 1F 00 FF */ cmpwi r31, 0xff -/* 804D6198 41 82 00 24 */ beq lbl_804D61BC -/* 804D619C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D61A0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D61A4 7F E4 FB 78 */ mr r4, r31 -/* 804D61A8 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804D61AC 7C 05 07 74 */ extsb r5, r0 -/* 804D61B0 4B B5 F1 B1 */ bl isSwitch__10dSv_info_cCFii -/* 804D61B4 2C 03 00 00 */ cmpwi r3, 0 -/* 804D61B8 41 82 00 10 */ beq lbl_804D61C8 -lbl_804D61BC: -/* 804D61BC 38 00 00 05 */ li r0, 5 -/* 804D61C0 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D61C4 48 00 00 0C */ b lbl_804D61D0 -lbl_804D61C8: -/* 804D61C8 38 00 00 00 */ li r0, 0 -/* 804D61CC 98 1E 05 6C */ stb r0, 0x56c(r30) -lbl_804D61D0: -/* 804D61D0 7F C3 F3 78 */ mr r3, r30 -/* 804D61D4 4B FF FC 25 */ bl getEventNo__10daAndsw2_cFv -/* 804D61D8 7C 65 1B 78 */ mr r5, r3 -/* 804D61DC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D61E0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D61E4 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 804D61E8 7F C4 F3 78 */ mr r4, r30 -/* 804D61EC 4B B7 14 AD */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D61F0 B0 7E 05 6A */ sth r3, 0x56a(r30) -/* 804D61F4 48 00 01 80 */ b lbl_804D6374 -lbl_804D61F8: -/* 804D61F8 2C 1F 00 FF */ cmpwi r31, 0xff -/* 804D61FC 40 82 00 10 */ bne lbl_804D620C -/* 804D6200 38 00 00 05 */ li r0, 5 -/* 804D6204 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D6208 48 00 00 38 */ b lbl_804D6240 -lbl_804D620C: -/* 804D620C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6210 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D6214 7F E4 FB 78 */ mr r4, r31 -/* 804D6218 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804D621C 7C 05 07 74 */ extsb r5, r0 -/* 804D6220 4B B5 F1 41 */ bl isSwitch__10dSv_info_cCFii -/* 804D6224 2C 03 00 00 */ cmpwi r3, 0 -/* 804D6228 41 82 00 10 */ beq lbl_804D6238 -/* 804D622C 38 00 00 04 */ li r0, 4 -/* 804D6230 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D6234 48 00 00 0C */ b lbl_804D6240 -lbl_804D6238: -/* 804D6238 38 00 00 00 */ li r0, 0 -/* 804D623C 98 1E 05 6C */ stb r0, 0x56c(r30) -lbl_804D6240: -/* 804D6240 7F C3 F3 78 */ mr r3, r30 -/* 804D6244 4B FF FB B5 */ bl getEventNo__10daAndsw2_cFv -/* 804D6248 7C 65 1B 78 */ mr r5, r3 -/* 804D624C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6250 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D6254 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 804D6258 7F C4 F3 78 */ mr r4, r30 -/* 804D625C 4B B7 14 3D */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D6260 B0 7E 05 6A */ sth r3, 0x56a(r30) -/* 804D6264 48 00 01 10 */ b lbl_804D6374 -lbl_804D6268: -/* 804D6268 2C 1F 00 FF */ cmpwi r31, 0xff -/* 804D626C 41 82 00 24 */ beq lbl_804D6290 -/* 804D6270 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6274 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D6278 7F E4 FB 78 */ mr r4, r31 -/* 804D627C 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804D6280 7C 05 07 74 */ extsb r5, r0 -/* 804D6284 4B B5 F0 DD */ bl isSwitch__10dSv_info_cCFii -/* 804D6288 2C 03 00 00 */ cmpwi r3, 0 -/* 804D628C 41 82 00 10 */ beq lbl_804D629C -lbl_804D6290: -/* 804D6290 38 00 00 05 */ li r0, 5 -/* 804D6294 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D6298 48 00 00 0C */ b lbl_804D62A4 -lbl_804D629C: -/* 804D629C 38 00 00 00 */ li r0, 0 -/* 804D62A0 98 1E 05 6C */ stb r0, 0x56c(r30) -lbl_804D62A4: -/* 804D62A4 7F C3 F3 78 */ mr r3, r30 -/* 804D62A8 4B FF FB 51 */ bl getEventNo__10daAndsw2_cFv -/* 804D62AC 7C 65 1B 78 */ mr r5, r3 -/* 804D62B0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D62B4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D62B8 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 804D62BC 7F C4 F3 78 */ mr r4, r30 -/* 804D62C0 4B B7 13 D9 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D62C4 B0 7E 05 6A */ sth r3, 0x56a(r30) -/* 804D62C8 48 00 00 AC */ b lbl_804D6374 -lbl_804D62CC: -/* 804D62CC 2C 1F 00 FF */ cmpwi r31, 0xff -/* 804D62D0 41 82 00 24 */ beq lbl_804D62F4 -/* 804D62D4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D62D8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D62DC 7F E4 FB 78 */ mr r4, r31 -/* 804D62E0 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804D62E4 7C 05 07 74 */ extsb r5, r0 -/* 804D62E8 4B B5 F0 79 */ bl isSwitch__10dSv_info_cCFii -/* 804D62EC 2C 03 00 00 */ cmpwi r3, 0 -/* 804D62F0 41 82 00 10 */ beq lbl_804D6300 -lbl_804D62F4: -/* 804D62F4 38 00 00 04 */ li r0, 4 -/* 804D62F8 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D62FC 48 00 00 0C */ b lbl_804D6308 -lbl_804D6300: -/* 804D6300 38 00 00 00 */ li r0, 0 -/* 804D6304 98 1E 05 6C */ stb r0, 0x56c(r30) -lbl_804D6308: -/* 804D6308 7F C3 F3 78 */ mr r3, r30 -/* 804D630C 4B FF FA ED */ bl getEventNo__10daAndsw2_cFv -/* 804D6310 7C 65 1B 78 */ mr r5, r3 -/* 804D6314 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6318 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D631C 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 804D6320 7F C4 F3 78 */ mr r4, r30 -/* 804D6324 4B B7 13 75 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D6328 B0 7E 05 6A */ sth r3, 0x56a(r30) -/* 804D632C 48 00 00 48 */ b lbl_804D6374 -lbl_804D6330: -/* 804D6330 38 00 00 00 */ li r0, 0 -/* 804D6334 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D6338 48 00 00 3C */ b lbl_804D6374 -lbl_804D633C: -/* 804D633C 38 00 00 00 */ li r0, 0 -/* 804D6340 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D6344 7F C3 F3 78 */ mr r3, r30 -/* 804D6348 4B FF FA B1 */ bl getEventNo__10daAndsw2_cFv -/* 804D634C 7C 65 1B 78 */ mr r5, r3 -/* 804D6350 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6354 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D6358 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 804D635C 7F C4 F3 78 */ mr r4, r30 -/* 804D6360 4B B7 13 39 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D6364 B0 7E 05 6A */ sth r3, 0x56a(r30) -/* 804D6368 48 00 00 0C */ b lbl_804D6374 -lbl_804D636C: -/* 804D636C 38 00 00 05 */ li r0, 5 -/* 804D6370 98 1E 05 6C */ stb r0, 0x56c(r30) -lbl_804D6374: -/* 804D6374 38 00 00 00 */ li r0, 0 -/* 804D6378 B0 1E 04 E8 */ sth r0, 0x4e8(r30) -/* 804D637C B0 1E 04 E4 */ sth r0, 0x4e4(r30) -/* 804D6380 B0 1E 04 E0 */ sth r0, 0x4e0(r30) -/* 804D6384 B0 1E 04 DC */ sth r0, 0x4dc(r30) -/* 804D6388 38 60 00 04 */ li r3, 4 -/* 804D638C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D6390 83 C1 00 08 */ lwz r30, 8(r1) -/* 804D6394 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D6398 7C 08 03 A6 */ mtlr r0 -/* 804D639C 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D63A0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Create__FP10fopAc_ac_c.s deleted file mode 100644 index a1c08bde72..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_804D6AA0: -/* 804D6AA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D6AA4 7C 08 02 A6 */ mflr r0 -/* 804D6AA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D6AAC 4B FF F6 75 */ bl create__10daAndsw2_cFv -/* 804D6AB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D6AB4 7C 08 03 A6 */ mtlr r0 -/* 804D6AB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D6ABC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Delete__FP10daAndsw2_c.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Delete__FP10daAndsw2_c.s deleted file mode 100644 index 16b0dc354c..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Delete__FP10daAndsw2_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_804D6A78: -/* 804D6A78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D6A7C 7C 08 02 A6 */ mflr r0 -/* 804D6A80 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D6A84 38 80 FF FF */ li r4, -1 -/* 804D6A88 4B FF F6 45 */ bl __dt__10daAndsw2_cFv -/* 804D6A8C 38 60 00 01 */ li r3, 1 -/* 804D6A90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D6A94 7C 08 03 A6 */ mtlr r0 -/* 804D6A98 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D6A9C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Execute__FP10daAndsw2_c.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Execute__FP10daAndsw2_c.s deleted file mode 100644 index 1b95935280..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Execute__FP10daAndsw2_c.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_804D6A3C: -/* 804D6A3C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D6A40 7C 08 02 A6 */ mflr r0 -/* 804D6A44 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D6A48 88 03 05 6C */ lbz r0, 0x56c(r3) -/* 804D6A4C 54 00 10 3A */ slwi r0, r0, 2 -/* 804D6A50 3C 80 80 4D */ lis r4, data_804D6AE4@ha /* 0x804D6AE4@ha */ -/* 804D6A54 38 84 6A E4 */ addi r4, r4, data_804D6AE4@l /* 0x804D6AE4@l */ -/* 804D6A58 7D 84 00 2E */ lwzx r12, r4, r0 -/* 804D6A5C 7D 89 03 A6 */ mtctr r12 -/* 804D6A60 4E 80 04 21 */ bctrl -/* 804D6A64 38 60 00 01 */ li r3, 1 -/* 804D6A68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D6A6C 7C 08 03 A6 */ mtlr r0 -/* 804D6A70 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D6A74 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionEvent__FP10daAndsw2_c.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionEvent__FP10daAndsw2_c.s deleted file mode 100644 index 5d51336a0a..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionEvent__FP10daAndsw2_c.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_804D68A4: -/* 804D68A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D68A8 7C 08 02 A6 */ mflr r0 -/* 804D68AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D68B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D68B4 93 C1 00 08 */ stw r30, 8(r1) -/* 804D68B8 7C 7E 1B 78 */ mr r30, r3 -/* 804D68BC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D68C0 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D68C4 38 7F 4F F8 */ addi r3, r31, 0x4ff8 -/* 804D68C8 A8 9E 05 6A */ lha r4, 0x56a(r30) -/* 804D68CC 4B B7 11 AD */ bl endCheck__16dEvent_manager_cFs -/* 804D68D0 2C 03 00 00 */ cmpwi r3, 0 -/* 804D68D4 41 82 00 70 */ beq lbl_804D6944 -/* 804D68D8 7F C3 F3 78 */ mr r3, r30 -/* 804D68DC 4B FF F5 41 */ bl getType__10daAndsw2_cFv -/* 804D68E0 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D68E4 28 00 00 01 */ cmplwi r0, 1 -/* 804D68E8 41 82 00 40 */ beq lbl_804D6928 -/* 804D68EC 7F C3 F3 78 */ mr r3, r30 -/* 804D68F0 4B FF F5 2D */ bl getType__10daAndsw2_cFv -/* 804D68F4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D68F8 28 00 00 03 */ cmplwi r0, 3 -/* 804D68FC 41 82 00 2C */ beq lbl_804D6928 -/* 804D6900 7F C3 F3 78 */ mr r3, r30 -/* 804D6904 4B FF F5 19 */ bl getType__10daAndsw2_cFv -/* 804D6908 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D690C 28 00 00 05 */ cmplwi r0, 5 -/* 804D6910 41 82 00 18 */ beq lbl_804D6928 -/* 804D6914 7F C3 F3 78 */ mr r3, r30 -/* 804D6918 4B FF F5 05 */ bl getType__10daAndsw2_cFv -/* 804D691C 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6920 28 00 00 06 */ cmplwi r0, 6 -/* 804D6924 40 82 00 10 */ bne lbl_804D6934 -lbl_804D6928: -/* 804D6928 38 00 00 04 */ li r0, 4 -/* 804D692C 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D6930 48 00 00 0C */ b lbl_804D693C -lbl_804D6934: -/* 804D6934 38 00 00 05 */ li r0, 5 -/* 804D6938 98 1E 05 6C */ stb r0, 0x56c(r30) -lbl_804D693C: -/* 804D693C 38 7F 4E C8 */ addi r3, r31, 0x4ec8 -/* 804D6940 4B B6 BB 29 */ bl reset__14dEvt_control_cFv -lbl_804D6944: -/* 804D6944 38 60 00 01 */ li r3, 1 -/* 804D6948 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D694C 83 C1 00 08 */ lwz r30, 8(r1) -/* 804D6950 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D6954 7C 08 03 A6 */ mtlr r0 -/* 804D6958 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D695C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOff__FP10daAndsw2_c.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOff__FP10daAndsw2_c.s deleted file mode 100644 index 7f71912ebf..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOff__FP10daAndsw2_c.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_804D6960: -/* 804D6960 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D6964 7C 08 02 A6 */ mflr r0 -/* 804D6968 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D696C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D6970 93 C1 00 08 */ stw r30, 8(r1) -/* 804D6974 7C 7E 1B 78 */ mr r30, r3 -/* 804D6978 3B E0 00 00 */ li r31, 0 -/* 804D697C 4B FF F4 A1 */ bl getType__10daAndsw2_cFv -/* 804D6980 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6984 2C 00 00 04 */ cmpwi r0, 4 -/* 804D6988 41 82 00 5C */ beq lbl_804D69E4 -/* 804D698C 40 80 00 18 */ bge lbl_804D69A4 -/* 804D6990 2C 00 00 02 */ cmpwi r0, 2 -/* 804D6994 40 80 00 34 */ bge lbl_804D69C8 -/* 804D6998 2C 00 00 00 */ cmpwi r0, 0 -/* 804D699C 40 80 00 10 */ bge lbl_804D69AC -/* 804D69A0 48 00 00 44 */ b lbl_804D69E4 -lbl_804D69A4: -/* 804D69A4 2C 00 00 07 */ cmpwi r0, 7 -/* 804D69A8 40 80 00 3C */ bge lbl_804D69E4 -lbl_804D69AC: -/* 804D69AC 7F C3 F3 78 */ mr r3, r30 -/* 804D69B0 4B FF F5 0D */ bl chkAllSw2__10daAndsw2_cFv -/* 804D69B4 30 03 FF FF */ addic r0, r3, -1 -/* 804D69B8 7C 00 19 10 */ subfe r0, r0, r3 -/* 804D69BC 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 804D69C0 7C 1F 03 78 */ mr r31, r0 -/* 804D69C4 48 00 00 20 */ b lbl_804D69E4 -lbl_804D69C8: -/* 804D69C8 7F C3 F3 78 */ mr r3, r30 -/* 804D69CC 4B FF F5 99 */ bl chkSwStatus__10daAndsw2_cFv -/* 804D69D0 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 804D69D4 30 03 FF FF */ addic r0, r3, -1 -/* 804D69D8 7C 00 19 10 */ subfe r0, r0, r3 -/* 804D69DC 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 804D69E0 7C 1F 03 78 */ mr r31, r0 -lbl_804D69E4: -/* 804D69E4 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 804D69E8 40 82 00 30 */ bne lbl_804D6A18 -/* 804D69EC 38 00 00 00 */ li r0, 0 -/* 804D69F0 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 804D69F4 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804D69F8 7C 1F 07 74 */ extsb r31, r0 -/* 804D69FC 7F C3 F3 78 */ mr r3, r30 -/* 804D6A00 4B FF F4 05 */ bl getSwbit__10daAndsw2_cFv -/* 804D6A04 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 804D6A08 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6A0C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D6A10 7F E5 FB 78 */ mr r5, r31 -/* 804D6A14 4B B5 E8 9D */ bl offSwitch__10dSv_info_cFii -lbl_804D6A18: -/* 804D6A18 38 60 00 01 */ li r3, 1 -/* 804D6A1C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D6A20 83 C1 00 08 */ lwz r30, 8(r1) -/* 804D6A24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D6A28 7C 08 03 A6 */ mtlr r0 -/* 804D6A2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D6A30 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOnAll__FP10daAndsw2_c.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOnAll__FP10daAndsw2_c.s deleted file mode 100644 index 7c4e91e3f3..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOnAll__FP10daAndsw2_c.s +++ /dev/null @@ -1,130 +0,0 @@ -lbl_804D63A4: -/* 804D63A4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 804D63A8 7C 08 02 A6 */ mflr r0 -/* 804D63AC 90 01 00 24 */ stw r0, 0x24(r1) -/* 804D63B0 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D63B4 4B E8 BE 29 */ bl _savegpr_29 -/* 804D63B8 7C 7F 1B 78 */ mr r31, r3 -/* 804D63BC 3B A0 00 00 */ li r29, 0 -/* 804D63C0 4B FF FA 5D */ bl getType__10daAndsw2_cFv -/* 804D63C4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D63C8 2C 00 00 04 */ cmpwi r0, 4 -/* 804D63CC 41 82 00 60 */ beq lbl_804D642C -/* 804D63D0 40 80 00 18 */ bge lbl_804D63E8 -/* 804D63D4 2C 00 00 02 */ cmpwi r0, 2 -/* 804D63D8 40 80 00 34 */ bge lbl_804D640C -/* 804D63DC 2C 00 00 00 */ cmpwi r0, 0 -/* 804D63E0 40 80 00 10 */ bge lbl_804D63F0 -/* 804D63E4 48 00 00 90 */ b lbl_804D6474 -lbl_804D63E8: -/* 804D63E8 2C 00 00 07 */ cmpwi r0, 7 -/* 804D63EC 40 80 00 88 */ bge lbl_804D6474 -lbl_804D63F0: -/* 804D63F0 7F E3 FB 78 */ mr r3, r31 -/* 804D63F4 4B FF FA C9 */ bl chkAllSw2__10daAndsw2_cFv -/* 804D63F8 30 03 FF FF */ addic r0, r3, -1 -/* 804D63FC 7C 00 19 10 */ subfe r0, r0, r3 -/* 804D6400 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 804D6404 7C 1D 03 78 */ mr r29, r0 -/* 804D6408 48 00 00 6C */ b lbl_804D6474 -lbl_804D640C: -/* 804D640C 7F E3 FB 78 */ mr r3, r31 -/* 804D6410 4B FF FB 55 */ bl chkSwStatus__10daAndsw2_cFv -/* 804D6414 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 804D6418 30 03 FF FF */ addic r0, r3, -1 -/* 804D641C 7C 00 19 10 */ subfe r0, r0, r3 -/* 804D6420 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 804D6424 7C 1D 03 78 */ mr r29, r0 -/* 804D6428 48 00 00 4C */ b lbl_804D6474 -lbl_804D642C: -/* 804D642C 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 804D6430 7C 1E 07 74 */ extsb r30, r0 -/* 804D6434 7F E3 FB 78 */ mr r3, r31 -/* 804D6438 4B FF F9 CD */ bl getSwbit__10daAndsw2_cFv -/* 804D643C 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 804D6440 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6444 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D6448 7F C5 F3 78 */ mr r5, r30 -/* 804D644C 4B B5 EF 15 */ bl isSwitch__10dSv_info_cCFii -/* 804D6450 2C 03 00 00 */ cmpwi r3, 0 -/* 804D6454 40 82 00 20 */ bne lbl_804D6474 -/* 804D6458 7F E3 FB 78 */ mr r3, r31 -/* 804D645C 4B FF FB C9 */ bl chkSwStatus2__10daAndsw2_cFv -/* 804D6460 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 804D6464 30 03 FF FF */ addic r0, r3, -1 -/* 804D6468 7C 00 19 10 */ subfe r0, r0, r3 -/* 804D646C 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 804D6470 7C 1D 03 78 */ mr r29, r0 -lbl_804D6474: -/* 804D6474 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 804D6478 41 82 00 EC */ beq lbl_804D6564 -/* 804D647C 7F E3 FB 78 */ mr r3, r31 -/* 804D6480 4B FF F9 A9 */ bl getTimer__10daAndsw2_cFv -/* 804D6484 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6488 28 00 00 FF */ cmplwi r0, 0xff -/* 804D648C 41 82 00 24 */ beq lbl_804D64B0 -/* 804D6490 7F E3 FB 78 */ mr r3, r31 -/* 804D6494 4B FF F9 95 */ bl getTimer__10daAndsw2_cFv -/* 804D6498 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D649C 1C 00 00 0F */ mulli r0, r0, 0xf -/* 804D64A0 B0 1F 05 68 */ sth r0, 0x568(r31) -/* 804D64A4 38 00 00 01 */ li r0, 1 -/* 804D64A8 98 1F 05 6C */ stb r0, 0x56c(r31) -/* 804D64AC 48 00 00 B8 */ b lbl_804D6564 -lbl_804D64B0: -/* 804D64B0 A8 1F 05 6A */ lha r0, 0x56a(r31) -/* 804D64B4 2C 00 FF FF */ cmpwi r0, -1 -/* 804D64B8 41 82 00 24 */ beq lbl_804D64DC -/* 804D64BC 7F E3 FB 78 */ mr r3, r31 -/* 804D64C0 4B FF F9 5D */ bl getType__10daAndsw2_cFv -/* 804D64C4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D64C8 28 00 00 04 */ cmplwi r0, 4 -/* 804D64CC 41 82 00 10 */ beq lbl_804D64DC -/* 804D64D0 38 00 00 02 */ li r0, 2 -/* 804D64D4 98 1F 05 6C */ stb r0, 0x56c(r31) -/* 804D64D8 48 00 00 8C */ b lbl_804D6564 -lbl_804D64DC: -/* 804D64DC 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 804D64E0 7C 1E 07 74 */ extsb r30, r0 -/* 804D64E4 7F E3 FB 78 */ mr r3, r31 -/* 804D64E8 4B FF F9 1D */ bl getSwbit__10daAndsw2_cFv -/* 804D64EC 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 804D64F0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D64F4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D64F8 7F C5 F3 78 */ mr r5, r30 -/* 804D64FC 4B B5 ED 05 */ bl onSwitch__10dSv_info_cFii -/* 804D6500 7F E3 FB 78 */ mr r3, r31 -/* 804D6504 4B FF F9 19 */ bl getType__10daAndsw2_cFv -/* 804D6508 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D650C 28 00 00 01 */ cmplwi r0, 1 -/* 804D6510 41 82 00 2C */ beq lbl_804D653C -/* 804D6514 7F E3 FB 78 */ mr r3, r31 -/* 804D6518 4B FF F9 05 */ bl getType__10daAndsw2_cFv -/* 804D651C 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6520 28 00 00 03 */ cmplwi r0, 3 -/* 804D6524 41 82 00 18 */ beq lbl_804D653C -/* 804D6528 7F E3 FB 78 */ mr r3, r31 -/* 804D652C 4B FF F8 F1 */ bl getType__10daAndsw2_cFv -/* 804D6530 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6534 28 00 00 06 */ cmplwi r0, 6 -/* 804D6538 40 82 00 10 */ bne lbl_804D6548 -lbl_804D653C: -/* 804D653C 38 00 00 04 */ li r0, 4 -/* 804D6540 98 1F 05 6C */ stb r0, 0x56c(r31) -/* 804D6544 48 00 00 20 */ b lbl_804D6564 -lbl_804D6548: -/* 804D6548 7F E3 FB 78 */ mr r3, r31 -/* 804D654C 4B FF F8 D1 */ bl getType__10daAndsw2_cFv -/* 804D6550 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6554 28 00 00 04 */ cmplwi r0, 4 -/* 804D6558 41 82 00 0C */ beq lbl_804D6564 -/* 804D655C 38 00 00 05 */ li r0, 5 -/* 804D6560 98 1F 05 6C */ stb r0, 0x56c(r31) -lbl_804D6564: -/* 804D6564 38 60 00 01 */ li r3, 1 -/* 804D6568 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D656C 4B E8 BC BD */ bl _restgpr_29 -/* 804D6570 80 01 00 24 */ lwz r0, 0x24(r1) -/* 804D6574 7C 08 03 A6 */ mtlr r0 -/* 804D6578 38 21 00 20 */ addi r1, r1, 0x20 -/* 804D657C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionTimer__FP10daAndsw2_c.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionTimer__FP10daAndsw2_c.s deleted file mode 100644 index 3a7e366e9a..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionTimer__FP10daAndsw2_c.s +++ /dev/null @@ -1,109 +0,0 @@ -lbl_804D6580: -/* 804D6580 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D6584 7C 08 02 A6 */ mflr r0 -/* 804D6588 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D658C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D6590 93 C1 00 08 */ stw r30, 8(r1) -/* 804D6594 7C 7F 1B 78 */ mr r31, r3 -/* 804D6598 4B FF F8 85 */ bl getType__10daAndsw2_cFv -/* 804D659C 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D65A0 28 00 00 01 */ cmplwi r0, 1 -/* 804D65A4 40 82 00 14 */ bne lbl_804D65B8 -/* 804D65A8 7F E3 FB 78 */ mr r3, r31 -/* 804D65AC 4B FF F9 11 */ bl chkAllSw2__10daAndsw2_cFv -/* 804D65B0 2C 03 00 00 */ cmpwi r3, 0 -/* 804D65B4 41 82 00 70 */ beq lbl_804D6624 -lbl_804D65B8: -/* 804D65B8 7F E3 FB 78 */ mr r3, r31 -/* 804D65BC 4B FF F8 61 */ bl getType__10daAndsw2_cFv -/* 804D65C0 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D65C4 28 00 00 03 */ cmplwi r0, 3 -/* 804D65C8 40 82 00 14 */ bne lbl_804D65DC -/* 804D65CC 7F E3 FB 78 */ mr r3, r31 -/* 804D65D0 4B FF F9 95 */ bl chkSwStatus__10daAndsw2_cFv -/* 804D65D4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 804D65D8 41 82 00 4C */ beq lbl_804D6624 -lbl_804D65DC: -/* 804D65DC 7F E3 FB 78 */ mr r3, r31 -/* 804D65E0 4B FF F8 3D */ bl getType__10daAndsw2_cFv -/* 804D65E4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D65E8 28 00 00 05 */ cmplwi r0, 5 -/* 804D65EC 40 82 00 14 */ bne lbl_804D6600 -/* 804D65F0 7F E3 FB 78 */ mr r3, r31 -/* 804D65F4 4B FF F8 C9 */ bl chkAllSw2__10daAndsw2_cFv -/* 804D65F8 2C 03 00 00 */ cmpwi r3, 0 -/* 804D65FC 41 82 00 28 */ beq lbl_804D6624 -lbl_804D6600: -/* 804D6600 7F E3 FB 78 */ mr r3, r31 -/* 804D6604 4B FF F8 19 */ bl getType__10daAndsw2_cFv -/* 804D6608 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D660C 28 00 00 06 */ cmplwi r0, 6 -/* 804D6610 40 82 00 20 */ bne lbl_804D6630 -/* 804D6614 7F E3 FB 78 */ mr r3, r31 -/* 804D6618 4B FF F8 A5 */ bl chkAllSw2__10daAndsw2_cFv -/* 804D661C 2C 03 00 00 */ cmpwi r3, 0 -/* 804D6620 40 82 00 10 */ bne lbl_804D6630 -lbl_804D6624: -/* 804D6624 38 00 00 00 */ li r0, 0 -/* 804D6628 98 1F 05 6C */ stb r0, 0x56c(r31) -/* 804D662C 48 00 00 BC */ b lbl_804D66E8 -lbl_804D6630: -/* 804D6630 A8 7F 05 68 */ lha r3, 0x568(r31) -/* 804D6634 2C 03 00 00 */ cmpwi r3, 0 -/* 804D6638 40 81 00 10 */ ble lbl_804D6648 -/* 804D663C 38 03 FF FF */ addi r0, r3, -1 -/* 804D6640 B0 1F 05 68 */ sth r0, 0x568(r31) -/* 804D6644 48 00 00 A4 */ b lbl_804D66E8 -lbl_804D6648: -/* 804D6648 A8 1F 05 6A */ lha r0, 0x56a(r31) -/* 804D664C 2C 00 FF FF */ cmpwi r0, -1 -/* 804D6650 41 82 00 10 */ beq lbl_804D6660 -/* 804D6654 38 00 00 02 */ li r0, 2 -/* 804D6658 98 1F 05 6C */ stb r0, 0x56c(r31) -/* 804D665C 48 00 00 8C */ b lbl_804D66E8 -lbl_804D6660: -/* 804D6660 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 804D6664 7C 1E 07 74 */ extsb r30, r0 -/* 804D6668 7F E3 FB 78 */ mr r3, r31 -/* 804D666C 4B FF F7 99 */ bl getSwbit__10daAndsw2_cFv -/* 804D6670 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 804D6674 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D6678 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D667C 7F C5 F3 78 */ mr r5, r30 -/* 804D6680 4B B5 EB 81 */ bl onSwitch__10dSv_info_cFii -/* 804D6684 7F E3 FB 78 */ mr r3, r31 -/* 804D6688 4B FF F7 95 */ bl getType__10daAndsw2_cFv -/* 804D668C 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D6690 28 00 00 01 */ cmplwi r0, 1 -/* 804D6694 41 82 00 18 */ beq lbl_804D66AC -/* 804D6698 7F E3 FB 78 */ mr r3, r31 -/* 804D669C 4B FF F7 81 */ bl getType__10daAndsw2_cFv -/* 804D66A0 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D66A4 28 00 00 05 */ cmplwi r0, 5 -/* 804D66A8 40 82 00 10 */ bne lbl_804D66B8 -lbl_804D66AC: -/* 804D66AC 38 00 00 05 */ li r0, 5 -/* 804D66B0 98 1F 05 6C */ stb r0, 0x56c(r31) -/* 804D66B4 48 00 00 34 */ b lbl_804D66E8 -lbl_804D66B8: -/* 804D66B8 7F E3 FB 78 */ mr r3, r31 -/* 804D66BC 4B FF F7 61 */ bl getType__10daAndsw2_cFv -/* 804D66C0 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D66C4 28 00 00 03 */ cmplwi r0, 3 -/* 804D66C8 41 82 00 18 */ beq lbl_804D66E0 -/* 804D66CC 7F E3 FB 78 */ mr r3, r31 -/* 804D66D0 4B FF F7 4D */ bl getType__10daAndsw2_cFv -/* 804D66D4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D66D8 28 00 00 06 */ cmplwi r0, 6 -/* 804D66DC 40 82 00 0C */ bne lbl_804D66E8 -lbl_804D66E0: -/* 804D66E0 38 00 00 04 */ li r0, 4 -/* 804D66E4 98 1F 05 6C */ stb r0, 0x56c(r31) -lbl_804D66E8: -/* 804D66E8 38 60 00 01 */ li r3, 1 -/* 804D66EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D66F0 83 C1 00 08 */ lwz r30, 8(r1) -/* 804D66F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D66F8 7C 08 03 A6 */ mtlr r0 -/* 804D66FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D6700 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getEventNo__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getEventNo__10daAndsw2_cFv.s deleted file mode 100644 index d74ed3ed73..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getEventNo__10daAndsw2_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5DF8: -/* 804D5DF8 A8 03 04 B4 */ lha r0, 0x4b4(r3) -/* 804D5DFC 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 804D5E00 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getNum__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getNum__10daAndsw2_cFv.s deleted file mode 100644 index 09925d7ee6..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getNum__10daAndsw2_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5E34: -/* 804D5E34 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 804D5E38 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 804D5E3C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwAns__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwAns__10daAndsw2_cFv.s deleted file mode 100644 index f73e602062..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwAns__10daAndsw2_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5EB0: -/* 804D5EB0 A8 03 04 B4 */ lha r0, 0x4b4(r3) -/* 804D5EB4 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f -/* 804D5EB8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit2__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit2__10daAndsw2_cFv.s deleted file mode 100644 index 9f6ed0f6b9..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit2__10daAndsw2_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5E10: -/* 804D5E10 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 804D5E14 54 03 46 3E */ srwi r3, r0, 0x18 -/* 804D5E18 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit__10daAndsw2_cFv.s deleted file mode 100644 index 9ac342ad9f..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit__10daAndsw2_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5E04: -/* 804D5E04 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 804D5E08 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f -/* 804D5E0C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTimer__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTimer__10daAndsw2_cFv.s deleted file mode 100644 index 3c3bd0c9c2..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTimer__10daAndsw2_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5E28: -/* 804D5E28 A8 03 04 B8 */ lha r0, 0x4b8(r3) -/* 804D5E2C 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 804D5E30 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTopSw__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTopSw__10daAndsw2_cFv.s deleted file mode 100644 index c350e18004..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTopSw__10daAndsw2_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_804D5E40: -/* 804D5E40 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D5E44 7C 08 02 A6 */ mflr r0 -/* 804D5E48 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5E4C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D5E50 7C 7F 1B 78 */ mr r31, r3 -/* 804D5E54 4B FF FF BD */ bl getSwbit2__10daAndsw2_cFv -/* 804D5E58 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D5E5C 28 00 00 FF */ cmplwi r0, 0xff -/* 804D5E60 41 82 00 10 */ beq lbl_804D5E70 -/* 804D5E64 7F E3 FB 78 */ mr r3, r31 -/* 804D5E68 4B FF FF A9 */ bl getSwbit2__10daAndsw2_cFv -/* 804D5E6C 48 00 00 30 */ b lbl_804D5E9C -lbl_804D5E70: -/* 804D5E70 7F E3 FB 78 */ mr r3, r31 -/* 804D5E74 4B FF FF 91 */ bl getSwbit__10daAndsw2_cFv -/* 804D5E78 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 804D5E7C 28 00 00 FF */ cmplwi r0, 0xff -/* 804D5E80 41 82 00 18 */ beq lbl_804D5E98 -/* 804D5E84 7F E3 FB 78 */ mr r3, r31 -/* 804D5E88 4B FF FF 7D */ bl getSwbit__10daAndsw2_cFv -/* 804D5E8C 38 03 00 01 */ addi r0, r3, 1 -/* 804D5E90 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 804D5E94 48 00 00 08 */ b lbl_804D5E9C -lbl_804D5E98: -/* 804D5E98 38 60 00 FF */ li r3, 0xff -lbl_804D5E9C: -/* 804D5E9C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D5EA0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D5EA4 7C 08 03 A6 */ mtlr r0 -/* 804D5EA8 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5EAC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getType__10daAndsw2_cFv.s b/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getType__10daAndsw2_cFv.s deleted file mode 100644 index 9420ed7770..0000000000 --- a/asm/rel/d/a/d_a_andsw2/d_a_andsw2/getType__10daAndsw2_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5E1C: -/* 804D5E1C 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 804D5E20 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f -/* 804D5E24 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphBase/J3DShapeMtx.h b/include/JSystem/J3DGraphBase/J3DShapeMtx.h index 5f23e39db1..d850b3c398 100644 --- a/include/JSystem/J3DGraphBase/J3DShapeMtx.h +++ b/include/JSystem/J3DGraphBase/J3DShapeMtx.h @@ -38,7 +38,6 @@ public: : mUseMtxIndex(useMtxIndex) {} - /* 803130A8 */ void resetMtxLoadCache(); /* 803130E4 */ void loadMtxIndx_PNGP(int, u16) const; /* 80313128 */ void loadMtxIndx_PCPU(int, u16) const; /* 80313188 */ void loadMtxIndx_NCPU(int, u16) const; diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index 085e3b74fa..bf96165bb0 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -11,8 +11,8 @@ enum J3DError { }; enum J3DSysDrawBuffer { - /* 0x0 */ OPA_BUFFER, - /* 0x1 */ XLU_BUFFER + /* 0x0 */ J3DSys_OPA_BUFFER_e, + /* 0x1 */ J3DSys_XLU_BUFFER_e }; class J3DMtxCalc; diff --git a/include/SSystem/SComponent/c_bg_s_lin_chk.h b/include/SSystem/SComponent/c_bg_s_lin_chk.h index a295adfadb..e0ae77d96c 100644 --- a/include/SSystem/SComponent/c_bg_s_lin_chk.h +++ b/include/SSystem/SComponent/c_bg_s_lin_chk.h @@ -31,6 +31,7 @@ public: u32 ChkHit() const { return field_0x4c & 16; } void SetCross(const cXyz& pos) { mLin.SetEnd(pos); } cXyz& i_GetCross() { return mLin.GetEnd(); } + cXyz* GetCrossP() { return &mLin.GetEndP(); } cM3dGLin* GetLinP() { return &mLin; } bool ChkBackFlag() const { return mBackFlag; } bool ChkFrontFlag() const { return mFrontFlag; } diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index fcc4f4e2f0..f1a5ecfe43 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -39,7 +39,7 @@ public: /* 80125F14 */ BOOL create(); /* 80126358 */ void update(); /* 80126424 */ virtual void draw(); - /* 800CFE68 */ virtual ~daAlink_lockCursor_c(); + /* 800CFE68 */ virtual ~daAlink_lockCursor_c() {} void initFrame() { field_0x4 = false; @@ -72,7 +72,7 @@ public: /* 80126710 */ void onLockFlg(); /* 801266C0 */ virtual void draw(); - /* 800CFDF4 */ virtual ~daAlink_sight_c(); + /* 800CFDF4 */ virtual ~daAlink_sight_c() {} bool getLockFlg() { return mLockFlag; } void offLockFlg() { mLockFlag = false; } @@ -90,7 +90,7 @@ public: /* 80125B0C */ void traceBlur(cXyz const*, cXyz const*, s16); /* 80125BF4 */ virtual void draw(); - /* 800CFD58 */ virtual ~daAlink_blur_c(); + /* 800CFD58 */ virtual ~daAlink_blur_c() {} // private: /* 0x010 */ void* m_blurTex; @@ -109,7 +109,7 @@ class dAlink_bottleWaterPcallBack_c : public JPAParticleCallBack { public: dAlink_bottleWaterPcallBack_c() { initialize(0.0f); } /* 80124A2C */ virtual void execute(JPABaseEmitter*, JPABaseParticle*); - /* 800CFCF8 */ virtual ~dAlink_bottleWaterPcallBack_c(); + /* 800CFCF8 */ virtual ~dAlink_bottleWaterPcallBack_c() {} void initialize(f32 minY) { mHitFlg = 0; @@ -669,7 +669,9 @@ public: FTANM_UNK_9F = 0x9F, }; - enum daAlink_WARP_MAT_MODE {}; + enum daAlink_WARP_MAT_MODE { + WARP_MAT_MODE_1 = 1, + }; enum daAlink_WANM { /* 0x00 */ WANM_WAIT, @@ -1635,7 +1637,7 @@ public: /* 800CC7DC */ void initTevCustomColor(); /* 800CC7FC */ int draw(); /* 800CD7AC */ ~daAlink_c(); - /* 800CE294 */ void checkNoSubjectModeCamera(); + /* 800CE294 */ bool checkNoSubjectModeCamera(); /* 800CE468 */ bool acceptSubjectModeChange(); /* 800CE628 */ int checkSubjectAction(); /* 800CE728 */ void checkBodyAngleX(s16); @@ -2392,7 +2394,7 @@ public: /* 801086DC */ void resetHookshotMode(); /* 8010871C */ bool setEnemyBombHookshot(fopAc_ac_c*); /* 80108784 */ bool checkLv7BossRoom(); - /* 801087B0 */ bool checkHookshotStickBG(cBgS_PolyInfo&); + /* 801087B0 */ BOOL checkHookshotStickBG(cBgS_PolyInfo&); /* 80108828 */ void cancelHookshotCarry(); /* 80108864 */ void changeHookshotDrawModel(); /* 801088A0 */ BOOL checkHookshotRoofLv7Boss(); @@ -2413,17 +2415,17 @@ public: /* 80109284 */ int checkUpperItemActionHookshot(); /* 801095C8 */ int checkNextActionHookshot(); /* 801097A0 */ void setHookshotReturnEnd(); - /* 80109890 */ void setHookshotHangMoveBGCollect(); + /* 80109890 */ int setHookshotHangMoveBGCollect(); /* 80109AAC */ void setHookshotTopPosFly(); /* 80109BDC */ void setHookshotPos(); /* 8010B2DC */ void setHookshotRoofWaitAnime(); /* 8010B35C */ void setHookshotWallWaitAnime(); /* 8010B3AC */ void hookshotRoofTurn(); /* 8010B644 */ void initHookshotRoofWaitActor(fopAc_ac_c*); - /* 8010B720 */ void checkNextHookPoint(); - /* 8010B84C */ void checkLandHookshotHang(); - /* 8010B96C */ void commonHookshotRoofWait(); - /* 8010BA6C */ void commonHookshotWallWait(); + /* 8010B720 */ int checkNextHookPoint(); + /* 8010B84C */ int checkLandHookshotHang(); + /* 8010B96C */ int commonHookshotRoofWait(); + /* 8010BA6C */ int commonHookshotWallWait(); /* 8010BAA8 */ int procHookshotSubjectInit(); /* 8010BB48 */ int procHookshotSubject(); /* 8010BC08 */ int procHookshotMoveInit(); @@ -3021,7 +3023,7 @@ public: virtual bool exchangeGrabActor(fopAc_ac_c*); virtual bool setForceGrab(fopAc_ac_c*, int, int); virtual void setForcePutPos(cXyz const&); - virtual BOOL checkPlayerNoDraw(); + virtual u32 checkPlayerNoDraw(); virtual void voiceStart(u32); virtual void seStartOnlyReverb(u32); virtual void seStartOnlyReverbLevel(u32); @@ -3314,6 +3316,8 @@ public: return i_frameCtrl->checkAnmEnd(); } + const cXyz& getHsChainTopPos() const { return mHookshotTopPos; } + static int getBallModelIdx() { return 0x25; } static int getBallBtkIdx() { return 0x49; } static int getBallBrkIdx() { return 0x41; } @@ -3387,37 +3391,34 @@ private: /* 0x006DC */ void* field_0x06dc; /* 0x006E0 */ void* field_0x06e0; /* 0x006E4 */ J3DShape* field_0x06e4; - /* 0x006E8 */ void* field_0x06e8; + /* 0x006E8 */ J3DShape* field_0x06e8; /* 0x006EC */ J3DShape* field_0x06ec; /* 0x006F0 */ J3DShape* field_0x06f0; - /* 0x006F4 */ J3DAnmBase* field_0x06f4; + /* 0x006F4 */ J3DAnmTevRegKey* field_0x06f4; /* 0x006F8 */ J3DAnmBase* field_0x06f8; /* 0x006FC */ J3DModel* field_0x06fc; // related to human link /* 0x00700 */ J3DModel* field_0x0700; /* 0x00704 */ J3DAnmBase* field_0x0704; /* 0x00708 */ J3DModel* mHeldItemModel; - /* 0x0070C */ J3DModel* field_0x070c; // related to held item + /* 0x0070C */ J3DModel* mpHookTipModel; // related to held item /* 0x00710 */ J3DModel* field_0x0710; // related to held item /* 0x00714 */ J3DModel* field_0x0714; // related to held item - /* 0x00718 */ J3DAnmBase* field_0x0718; + /* 0x00718 */ J3DAnmTextureSRTKey* field_0x0718; /* 0x0071C */ J3DAnmBase* field_0x071c; /* 0x00720 */ J3DAnmBase* field_0x0720; /* 0x00724 */ J3DAnmTevRegKey* field_0x0724; /* 0x00728 */ J3DAnmBase* field_0x0728; /* 0x0072C */ J3DAnmBase* field_0x072c; - /* 0x00730 */ mDoExt_bckAnm field_0x730; - /* 0x0074C */ mDoExt_bckAnm field_0x74C; - /* 0x00768 */ J3DModelData* field_0x0768; - /* 0x0076C */ Z2SoundObjSimple* field_0x076c; - /* 0x00770 */ hsChainShape_c* field_0x770; + /* 0x00730 */ mDoExt_bckAnm mItemBck; + /* 0x0074C */ mDoExt_bckAnm mHookTipBck; + /* 0x00768 */ J3DModelData* mpHookKusariModelData; + /* 0x0076C */ Z2SoundObjSimple* mpHookSound; + /* 0x00770 */ hsChainShape_c* mpHookChain; /* 0x00774 */ u8 field_0x0774[0x77C - 0x774]; /* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk; /* 0x00780 */ u8 field_0x780[4]; /* 0x00784 */ J3DModel* field_0x784[2]; - /* 0x0078C */ J3DModel* mpWlChain1Model; - /* 0x00790 */ J3DModel* mpWlChain2Model; - /* 0x00794 */ J3DModel* mpWlChain3Model; - /* 0x00798 */ J3DModel* mpWlChain4Model; + /* 0x0078C */ J3DModel* mpWlChainModels[4]; /* 0x0079C */ J3DModel* field_0x79c; // related to wolf /* 0x007A0 */ J3DModel* mpWlMidnaHatModel; /* 0x007A4 */ J3DModel* field_0x7a4; // related to wolf @@ -3500,7 +3501,7 @@ private: /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangAcKeep; /* 0x0283C */ daPy_actorKeep_c mCopyRodAcKeep; /* 0x02844 */ daPy_actorKeep_c field_0x2844; - /* 0x0284C */ daPy_actorKeep_c field_0x284c; + /* 0x0284C */ daPy_actorKeep_c mHookTargetAcKeep; /* 0x02854 */ daPy_actorKeep_c mCargoCarryAcKeep; /* 0x0285C */ daPy_actorKeep_c field_0x285c; /* 0x02864 */ dMsgFlow_c mMsgFlow; @@ -3643,9 +3644,7 @@ private: /* 0x03008 */ s16 field_0x3008; /* 0x0300A */ s16 field_0x300a; /* 0x0300C */ s16 field_0x300c; // might need more accurate name - /* 0x0300E */ s16 field_0x300e; - /* 0x03010 */ s16 field_0x3010; - /* 0x03012 */ s16 field_0x3012; + /* 0x0300E */ csXyz field_0x300e; /* 0x03014 */ s16 mFallVoiceInit; /* 0x03016 */ u8 field_0x3016[2]; /* 0x03018 */ s16 field_0x3018; @@ -3814,7 +3813,7 @@ private: /* 0x0321C */ u32 field_0x321c; /* 0x03220 */ u32 field_0x3220; /* 0x03224 */ u32 field_0x3224; - /* 0x03228 */ u8 field_0x3228[24]; + /* 0x03228 */ u32 field_0x3228[2][3]; /* 0x03240 */ u32 field_0x3240; /* 0x03244 */ u8 field_0x3244[20]; /* 0x03258 */ u32 field_0x3258; @@ -3955,7 +3954,7 @@ private: /* 0x037B0 */ cXyz field_0x37b0[2]; /* 0x037C8 */ cXyz field_0x37c8; /* 0x037D4 */ cXyz field_0x37d4; - /* 0x037E0 */ cXyz field_0x37e0; + /* 0x037E0 */ cXyz mHeldItemRootPos; /* 0x037EC */ cXyz mHookshotTopPos; /* 0x037F8 */ cXyz mIronBallCenterPos; /* 0x03804 */ cXyz mIronBallBgChkPos; diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 7784bf909a..de3398e89e 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -10,7 +10,7 @@ class daPy_sightPacket_c : public dDlst_base_c { public: daPy_sightPacket_c() {} /* 8015F1A0 */ virtual void draw(); - /* 80140CDC */ virtual ~daPy_sightPacket_c(); + /* 80140CDC */ virtual ~daPy_sightPacket_c() {} /* 8015F2FC */ void setSight(); /* 8015F384 */ void setSightImage(ResTIMG*); @@ -118,7 +118,7 @@ public: /* 80140D80 */ daPy_frameCtrl_c(); bool checkAnmEnd(); void updateFrame(); - void setFrameCtrl(u8, short, short, float, float); + void setFrameCtrl(u8, short, short, f32, f32); u16 getEndFlg() { return mEndFlg; } u16 getNowSetFlg() { return mNowSetFlg; } @@ -217,6 +217,7 @@ public: FLG0_UNDERWATER = 0x800000, FLG0_UNK_100000 = 0x100000, FLG0_UNK_80000 = 0x80000, + FLG0_UNK_40000 = 0x40000, FLG0_UNK_20000 = 0x20000, FLG0_UNK_8000 = 0x8000, FLG0_UNK_4000 = 0x4000, @@ -234,6 +235,7 @@ public: FLG0_HVY_STATE = FLG0_UNK_40000000 | FLG0_EQUIP_HVY_BOOTS | FLG0_UNK_20000, FLG0_UNK_14000 = 0x14000, + FLG0_UNK_18 = FLG0_UNK_10 | FLG0_UNK_8, }; enum daPy_FLG1 { @@ -275,6 +277,7 @@ public: FLG2_UNK_4000 = 0x4000, FLG2_UNK_2000 = 0x2000, FLG2_UNK_1000 = 0x1000, + FLG2_UNK_400 = 0x400, FLG2_UNK_200 = 0x200, FLG2_UNK_80 = 0x80, FLG2_UNK_40 = 0x40, @@ -288,6 +291,7 @@ public: }; enum daPy_FLG3 { + FLG3_UNK_80000000 = 0x80000000, FLG3_UNK_40000000 = 0x40000000, FLG3_UNK_20000000 = 0x20000000, FLG3_UNK_4000000 = 0x4000000, @@ -365,6 +369,7 @@ public: RFLG0_FRONT_ROLL_CRASH = 0x2000, RFLG0_ENEMY_ATTN_LOCK = 0x1000, RFLG0_UNK_400 = 0x400, + RFLG0_UNK_100 = 0x100, RFLG0_UNK_80 = 0x80, RFLG0_UNK_40 = 0x40, RFLG0_UNK_10 = 0x10, @@ -459,10 +464,10 @@ public: static bool checkRoomRestartStart(); static u32 checkCarryStartLightBallA(); static u32 checkCarryStartLightBallB(); - float getSpinnerRideSpeed() const; + f32 getSpinnerRideSpeed() const; bool checkSpinnerReflectEffect(); static bool checkBoomerangCharge(); - bool checkBoomerangChargeTime(); + int checkBoomerangChargeTime(); static daBoomerang_c* getThrowBoomerangActor(); static void cancelBoomerangLockActor(fopAc_ac_c*); static void setPlayerDamage(int, int); @@ -565,9 +570,9 @@ public: virtual BOOL checkBoarRun() const; virtual bool checkFmChainPut() const; virtual bool checkHorseElecDamage() const; - virtual float getBaseAnimeFrameRate() const; - virtual float getBaseAnimeFrame() const; - virtual void setAnimeFrame(float); + virtual f32 getBaseAnimeFrameRate() const; + virtual f32 getBaseAnimeFrame() const; + virtual void setAnimeFrame(f32); virtual bool checkWolfLock(fopAc_ac_c*) const; virtual bool cancelWolfLock(fopAc_ac_c*); virtual s32 getAtnActorID() const; @@ -576,14 +581,14 @@ public: virtual bool exchangeGrabActor(fopAc_ac_c*); virtual bool setForceGrab(fopAc_ac_c*, int, int); virtual void setForcePutPos(cXyz const&); - virtual BOOL checkPlayerNoDraw(); + virtual u32 checkPlayerNoDraw(); virtual bool checkRopeTag(); virtual void voiceStart(u32); virtual void seStartOnlyReverb(u32); virtual void seStartOnlyReverbLevel(u32); - virtual void setOutPower(float, short, int); - virtual void setGrabCollisionOffset(float, float, cBgS_PolyInfo*); - virtual void onMagneGrab(float, float); + virtual void setOutPower(f32, short, int); + virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*); + virtual void onMagneGrab(f32, f32); virtual void onFrollCrashFlg(u8, int); virtual MtxP getModelJointMtx(u16); virtual MtxP getHeadMtx(); @@ -596,10 +601,10 @@ public: virtual void setClothesChange(int); virtual void setPlayerPosAndAngle(cXyz const*, short, int); virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); - virtual void setPlayerPosAndAngle(float (*)[4]); - virtual bool setThrowDamage(short, float, float, int, int, int); + virtual void setPlayerPosAndAngle(f32 (*)[4]); + virtual bool setThrowDamage(short, f32, f32, int, int, int); virtual bool checkSetNpcTks(cXyz*, int, int); - virtual int setRollJump(float, float, short); + virtual int setRollJump(f32, f32, short); virtual void playerStartCollisionSE(u32, u32); virtual void changeTextureAnime(u16, u16, int); virtual void cancelChangeTextureAnime(); @@ -631,7 +636,7 @@ public: virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2); virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const; virtual void setWolfEnemyHangBiteAngle(short); - virtual void setKandelaarMtx(float (*)[4], int, int); + virtual void setKandelaarMtx(f32 (*)[4], int, int); virtual bool getStickAngleFromPlayerShape(short*) const; virtual bool checkSpinnerPathMove(); virtual bool checkSpinnerTriggerAttack(); @@ -672,7 +677,7 @@ public: virtual BOOL checkBootsOrArmorHeavy() const; virtual s32 getBottleOpenAppearItem() const; virtual bool checkItemSwordEquip() const; - virtual float getSinkShapeOffset() const; + virtual f32 getSinkShapeOffset() const; virtual BOOL checkSinkDead() const; virtual BOOL checkHorseStart(); virtual Z2WolfHowlMgr* getWolfHowlMgrP(); @@ -708,6 +713,7 @@ public: bool checkSceneChangeAreaStart() const { return i_checkNoResetFlg2(FLG2_SCN_CHG_START); } bool checkFrontRollCrash() const { return i_checkResetFlg0(RFLG0_FRONT_ROLL_CRASH); } bool checkWolfAttackReverse() const { return checkResetFlg1(RFLG1_WOLF_ATTACK_REVERSE); } + bool checkFreezeDamage() const { return i_checkNoResetFlg1(FLG1_UNK_40000000); } void onForceAutoJump() { i_onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); } void onNotAutoJump() { i_onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); } diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 51de923099..011ff553b9 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -97,8 +97,10 @@ public: f32 RoofChk(dBgS_RoofChk*); bool SplGrpChk(dBgS_SplGrpChk*); bool SphChk(dBgS_SphChk*, void*); - void MoveBgCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*, bool, bool); - void MoveBgTransPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*); + void MoveBgCrrPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle, + csXyz* i_shapeAngle, bool param_5, bool param_6); + void MoveBgTransPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle, + csXyz* i_shapeAngle); void MoveBgMatrixCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*); void RideCallBack(cBgS_PolyInfo const&, fopAc_ac_c*); void ArrowStickCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, cXyz&); diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h index 17a7274cd4..5fc99e0344 100644 --- a/include/d/bg/d_bg_s_acch.h +++ b/include/d/bg/d_bg_s_acch.h @@ -47,6 +47,7 @@ public: void SetWallH(f32 h) { m_wall_h = h; } void ClrWallHDirect() { m_flags &= ~WALL_H_DIRECT; } bool ChkWallHit() { return m_flags & WALL_HIT; } + s16 GetWallAngleY() { return m_wall_angle_y; } void SetCir(cXyz& pos) { m_cir.Set(pos.x, pos.z, pos.y + GetWallH(), m_wall_r); } }; // Size: 0x40 @@ -159,6 +160,7 @@ public: bool ChkMoveBGOnly() const { return m_flags & MOVE_BG_ONLY; } void SetWallHit() { m_flags |= WALL_HIT; } void ClrWallNone() { m_flags &= ~WALL_NONE; } + void OnLineCheckNone() { m_flags |= LINE_CHECK_NONE; } cM3dGCyl* GetWallBmdCylP() { return &m_wall_cyl; } // inline dupe @@ -204,7 +206,7 @@ class dBgS_LinkAcch : public dBgS_Acch { public: dBgS_LinkAcch() { SetLink(); } - /* 80140F30 */ virtual ~dBgS_LinkAcch(); + /* 80140F30 */ virtual ~dBgS_LinkAcch() {} }; class dBgS_ObjAcch : public dBgS_Acch { diff --git a/include/d/bg/d_bg_s_gnd_chk.h b/include/d/bg/d_bg_s_gnd_chk.h index 8c246d3cb8..19db331610 100644 --- a/include/d/bg/d_bg_s_gnd_chk.h +++ b/include/d/bg/d_bg_s_gnd_chk.h @@ -13,14 +13,14 @@ public: class dBgS_LinkGndChk : public dBgS_GndChk { public: dBgS_LinkGndChk() { SetLink(); } - /* 80140EB8 */ virtual ~dBgS_LinkGndChk(); + /* 80140EB8 */ virtual ~dBgS_LinkGndChk() {} }; class dBgS_ObjGndChk : public dBgS_GndChk { public: dBgS_ObjGndChk() { SetObj(); } - /* 8001E020 */ virtual ~dBgS_ObjGndChk(); + /* 8001E020 */ virtual ~dBgS_ObjGndChk(); // should be inlined }; class dBgS_ObjGndChk_Wtr : public dBgS_ObjGndChk { diff --git a/include/d/bg/d_bg_s_roof_chk.h b/include/d/bg/d_bg_s_roof_chk.h index 9e79a54994..a2ac6a7ff4 100644 --- a/include/d/bg/d_bg_s_roof_chk.h +++ b/include/d/bg/d_bg_s_roof_chk.h @@ -28,7 +28,7 @@ private: class dBgS_LinkRoofChk : public dBgS_RoofChk { public: dBgS_LinkRoofChk() { SetLink(); } - /* 80140E40 */ virtual ~dBgS_LinkRoofChk(); + /* 80140E40 */ virtual ~dBgS_LinkRoofChk() {} }; #endif /* D_BG_D_BG_S_ROOF_CHK_H */ diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h index 98ed2c9826..a069dbf97c 100644 --- a/include/d/cc/d_cc_d.h +++ b/include/d/cc/d_cc_d.h @@ -144,7 +144,7 @@ public: }; // Size = 0x3C class dCcD_GObjInf; -typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); +typedef void (*dCcD_HitCallback)(fopAc_ac_c* i_actorA, dCcD_GObjInf* i_objInfA, fopAc_ac_c* i_actorB, dCcD_GObjInf* i_objInfB); // Attack/Defense/Correction Collider Common Base @@ -206,6 +206,7 @@ public: u8 GetHitMark() { return mHitMark; } void SetRVec(cXyz& vec) { mRVec = vec; } void SetHitPos(cXyz& pos) { mHitPos = pos; } + cXyz* GetHitPosP() { return &mHitPos; } // private: /* 0x1C */ u8 mSe; @@ -376,6 +377,8 @@ public: void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); } void SetAtHitPos(cXyz& pos) { mGObjAt.SetHitPos(pos); } u32 GetTgHitObjHitSeID(int i_soundID) { return getHitSeID(GetTgHitObjSe(),i_soundID); } + cXyz* GetAtHitPosP() { return mGObjAt.GetHitPosP(); } + bool ChkTgHookshotThrough() { return mGObjTg.ChkSPrm(0x80); } static const Z2SoundID m_hitSeID[24]; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index afb1db2c3a..06d32de25b 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -2505,6 +2505,10 @@ inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) { g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag); } +inline void dComIfGp_clearPlayerStatus1(int param_0, u32 flag) { + g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 1, flag); +} + inline dStage_stageDt_c* i_dComIfGp_getStage() { return &g_dComIfG_gameInfo.play.getStage(); } @@ -3423,6 +3427,16 @@ inline u32 dComIfGp_particle_setPolyColor(u32 param_0, u16 param_1, cBgS_PolyInf param_8, param_9, param_10); } +inline JPABaseEmitter* dComIfGp_particle_setPolyColor(u16 param_1, cBgS_PolyInfo& param_2, + const cXyz* param_3, const dKy_tevstr_c* param_4, + const csXyz* param_5, const cXyz* param_6, int param_7, + dPa_levelEcallBack* param_8, s8 param_9, + const cXyz* param_10) { + return g_dComIfG_gameInfo.play.getParticle()->setPoly(param_1, param_2, param_3, + param_4, param_5, param_6, param_7, + param_8, param_9, param_10); +} + int dComIfGd_setSimpleShadow(cXyz* pos, f32 param_1, f32 param_2, cBgS_PolyInfo& param_3, s16 angle, f32 param_5, _GXTexObj* tex); stage_camera_class* dComIfGp_getRoomCamera(int i_roomNo); @@ -3556,6 +3570,11 @@ inline void dComIfGd_setListIndScreen() { g_dComIfG_gameInfo.drawlist.setXluListP0(); } +inline void dComIfGd_setListMiddle() { + g_dComIfG_gameInfo.drawlist.setOpaListMiddle(); + g_dComIfG_gameInfo.drawlist.setXluListMiddle(); +} + inline void dComIfGd_setListZxlu() { g_dComIfG_gameInfo.drawlist.setOpaListZxlu(); g_dComIfG_gameInfo.drawlist.setXluListZxlu(); @@ -3565,6 +3584,10 @@ inline J3DDrawBuffer* dComIfGd_getOpaListBG() { return g_dComIfG_gameInfo.drawlist.getOpaListBG(); } +inline J3DDrawBuffer* dComIfGd_getOpaListDark() { + return g_dComIfG_gameInfo.drawlist.getOpaListDark(); +} + inline void dComIfGd_init() { g_dComIfG_gameInfo.drawlist.init(); } @@ -3593,6 +3616,10 @@ inline void dComIfGd_entryZSortListZxlu(J3DPacket* i_packet, cXyz& param_1) { g_dComIfG_gameInfo.drawlist.entryZSortListZxlu(i_packet, param_1); } +inline void dComIfGd_entryZSortXluList(J3DPacket* i_packet, cXyz& param_1) { + g_dComIfG_gameInfo.drawlist.entryZSortXluList(i_packet, param_1); +} + inline void dComIfGd_drawCopy2D() { g_dComIfG_gameInfo.drawlist.drawCopy2D(); } diff --git a/include/d/d_camera.h b/include/d/d_camera.h index a2cf46a294..2b7005def1 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -243,7 +243,7 @@ public: /* 801647B0 */ void onRoomChange(s32); /* 80164878 */ void getParamTargetActor(s32); /* 80164944 */ void GetCameraTypeFromMapToolID(s32, s32); - /* 80164B64 */ void GetCameraTypeFromCameraName(char const*); + /* 80164B64 */ int GetCameraTypeFromCameraName(char const*); /* 80164C10 */ void GetCameraTypeFromToolData(stage_camera2_data_class*); /* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16); /* 80164CAC */ void popInfo(dCamera_c::dCamInfo_c*); @@ -332,6 +332,7 @@ public: bool Active() { return field_0x24 == 0; } f32 TrimHeight() { return mTrimHeight; } + int Type() { return mCurType; } static u8 engine_tbl[240]; diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index c1ae36e561..fff5b9e423 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -312,8 +312,9 @@ public: J3DDrawBuffer* getOpaListP0() { return mDrawBuffers[DB_LIST_P0]; } J3DDrawBuffer* getOpaListPacket() { return mDrawBuffers[DB_OPA_LIST_PACKET]; } J3DDrawBuffer* getOpaListBG() { return mDrawBuffers[DB_OPA_LIST_BG]; } - void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, XLU_BUFFER); } - void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); } + J3DDrawBuffer* getOpaListDark() { return mDrawBuffers[DB_OPA_LIST_DARK]; } + void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, J3DSys_XLU_BUFFER_e); } + void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, J3DSys_OPA_BUFFER_e); } void setXluListSky() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_SKY]); } void setOpaListSky() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_SKY]); } void setXluListDark() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_DARK]); } @@ -333,6 +334,8 @@ public: void setXluList2DScreen() { setXluDrawList(mDrawBuffers[DB_LIST_2D_SCREEN]); } void setXluListP0() { setXluDrawList(mDrawBuffers[DB_LIST_P0]); } void setOpaListP0() { setOpaDrawList(mDrawBuffers[DB_LIST_P0]); } + void setXluListMiddle() { setXluDrawList(mDrawBuffers[DB_LIST_MIDDLE]); } + void setOpaListMiddle() { setOpaDrawList(mDrawBuffers[DB_LIST_MIDDLE]); } void setOpaListZxlu() { setOpaDrawList(mDrawBuffers[DB_LIST_Z_XLU]); } void setXluListZxlu() { setXluDrawList(mDrawBuffers[DB_LIST_Z_XLU]); } @@ -341,6 +344,10 @@ public: entryZSortXluDrawList(mDrawBuffers[DB_LIST_Z_XLU], i_packet, param_1); } + void entryZSortXluList(J3DPacket* i_packet, cXyz& param_1) { + entryZSortXluDrawList(mDrawBuffers[DB_XLU_LIST], i_packet, param_1); + } + int setSimpleShadow(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3, s16 param_4, f32 param_5, _GXTexObj* param_6) { return mShadowControl.setSimple(param_0, param_1, param_2, param_3, param_4, param_5, diff --git a/include/d/d_eye_hl.h b/include/d/d_eye_hl.h index dffddb10ac..4df1e63f36 100644 --- a/include/d/d_eye_hl.h +++ b/include/d/d_eye_hl.h @@ -13,17 +13,10 @@ public: /* 8009CB14 */ static void entry(dEyeHL_c*); /* 8009CB34 */ static void remove(dEyeHL_c*); - static dEyeHL_mng_c* m_obj; - - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ ResTIMG* m_timg; - /* 0x08 */ s16 m_lodBias; - /* 0x0A */ u8 field_0x0a[2]; - /* 0x0C */ dEyeHL_mng_c* m_pre; - /* 0x10 */ dEyeHL_mng_c* m_next; + static dEyeHL_c* m_obj; }; -class dEyeHL_c : public dEyeHL_mng_c { +class dEyeHL_c { public: dEyeHL_c() { m_timg = NULL; @@ -33,7 +26,12 @@ public: /* 8009C964 */ void entry(J3DModelData*, char const*); /* 8009CA28 */ void remove(); - /* 80140C80 */ ~dEyeHL_c(); + /* 80140C80 */ virtual ~dEyeHL_c() { remove(); } + + /* 0x04 */ ResTIMG* m_timg; + /* 0x08 */ s16 m_lodBias; + /* 0x0C */ dEyeHL_c* m_pre; + /* 0x10 */ dEyeHL_c* m_next; }; #endif /* D_D_EYE_HL_H */ diff --git a/include/d/d_lib.h b/include/d/d_lib.h index 8f024b72ea..3eb24bdc1c 100644 --- a/include/d/d_lib.h +++ b/include/d/d_lib.h @@ -11,6 +11,7 @@ class JKRAramArchive; u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* arc, char const* resName); BOOL dLib_checkActorInRectangle(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz const* param_2, cXyz const* param_3); +u8 dLib_getEventSwitchNo(int param_0); class STControl { public: diff --git a/include/d/d_stage.h b/include/d/d_stage.h index b91709d5ae..4e710f6071 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -299,8 +299,15 @@ struct dStage_FloorInfo_c { // FLOR }; +class dStage_Lbnk_dt_c { +public: + /* 0x0 */ u8 field_0x0[0x2 - 0x0]; + /* 0x2 */ u8 field_0x2; +}; + struct dStage_Lbnk_c { - // LBNK + /* 0x0 */ int num; + /* 0x4 */ dStage_Lbnk_dt_c* entries; }; struct dStage_Elst_data { @@ -1095,6 +1102,14 @@ inline f32 dStage_FileList_dt_SeaLevel(dStage_FileList_dt_c* p_fList) { return p_fList->mSeaLevel; } +inline int dStage_FileList_dt_GlobalWindLevel(dStage_FileList_dt_c* i_fili) { + return (i_fili->mParameters >> 0x12) & 3; +} + +inline int dStage_FileList_dt_GlobalWindDir(dStage_FileList_dt_c* i_fili) { + return (i_fili->mParameters >> 0xF) & 7; +} + inline f32 dStage_FileList2_dt_GetLeftRmX(dStage_FileList2_dt_c* p_fList2) { return p_fList2->mLeftRmX; } @@ -1127,4 +1142,12 @@ inline int dStage_MapEvent_dt_c_getEventSCutType(dStage_MapEvent_dt_c* event) { return event->field_0x8 >> 1 & 3; } +inline int dStage_lbnkWIND(dStage_Lbnk_dt_c* i_data) { + return (i_data->field_0x2 >> 3) & 7; +} + +inline int dStage_lbnkWlevel(dStage_Lbnk_dt_c* i_data) { + return (i_data->field_0x2 >> 6) & 3; +} + #endif /* D_D_STAGE_H */ diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 017558f1e1..add7ddb20a 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -127,7 +127,7 @@ struct BOSS_LIGHT { struct GB_WIND_INFLUENCE { /* 0x00 */ cXyz vec; - /* 0x0C */ int field_0xc; + /* 0x0C */ cXyz* vec_override; /* 0x10 */ f32 pow; }; diff --git a/include/d/kankyo/d_kankyo_rain.h b/include/d/kankyo/d_kankyo_rain.h index bcb9548c84..04a03c818a 100644 --- a/include/d/kankyo/d_kankyo_rain.h +++ b/include/d/kankyo/d_kankyo_rain.h @@ -1,23 +1,23 @@ #ifndef D_KANKYO_D_KANKYO_RAIN_H #define D_KANKYO_D_KANKYO_RAIN_H -#include "dolphin/types.h" +#include "dolphin/mtx/mtx.h" struct cXyz; struct _GXColor; -void dKyr_drawSun(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3); -void dKyr_drawLenzflare(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3); -void dKyr_drawSibuki(f32 (*param_0)[4], u8** param_1); -void dKyr_drawRain(f32 (*param_0)[4], u8** param_1); -void dKyr_drawSnow(f32 (*param_0)[4], u8** param_1); -void dKyr_drawStar(f32 (*param_0)[4], u8** param_1); -void drawCloudShadow(f32 (*param_0)[4], u8** param_1); -void dKyr_drawHousi(f32 (*param_0)[4], u8** param_1); -void drawVrkumo(f32 (*param_0)[4], _GXColor& param_1, u8** param_2); -void dKyr_odour_draw(f32 (*param_0)[4], u8** param_1); -void dKyr_mud_draw(f32 (*param_0)[4], u8** param_1); -void dKyr_evil_draw(f32 (*param_0)[4], u8** param_1); +void dKyr_drawSun(Mtx param_0, cXyz* param_1, _GXColor& param_2, u8** param_3); +void dKyr_drawLenzflare(Mtx param_0, cXyz* param_1, _GXColor& param_2, u8** param_3); +void dKyr_drawSibuki(Mtx param_0, u8** param_1); +void dKyr_drawRain(Mtx param_0, u8** param_1); +void dKyr_drawSnow(Mtx param_0, u8** param_1); +void dKyr_drawStar(Mtx param_0, u8** param_1); +void drawCloudShadow(Mtx param_0, u8** param_1); +void dKyr_drawHousi(Mtx param_0, u8** param_1); +void drawVrkumo(Mtx param_0, _GXColor& param_1, u8** param_2); +void dKyr_odour_draw(Mtx param_0, u8** param_1); +void dKyr_mud_draw(Mtx param_0, u8** param_1); +void dKyr_evil_draw(Mtx param_0, u8** param_1); void dKyr_thunder_init(); void dKyr_thunder_move(); void dKyr_snow_init(); @@ -39,6 +39,7 @@ void dKyr_star_init(); void dKyr_shstar_init(); void dKyr_star_move(); void dKyr_shstar_move(); +void vrkumo_move(); void dKyr_get_vectle_calc(cXyz* param_0, cXyz* param_1, cXyz* param_2); #endif /* D_KANKYO_D_KANKYO_RAIN_H */ diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index b368cbd025..c48120144a 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -4,7 +4,8 @@ #include "JSystem/J3DGraphBase/J3DPacket.h" #include "SSystem/SComponent/c_sxyz.h" #include "SSystem/SComponent/c_xyz.h" -#include "dolphin/types.h" + +class WIND_INFLUENCE; void dKyw_wether_draw(); void dKyw_wether_delete(); @@ -28,6 +29,8 @@ void dKyw_custom_windpower(f32 pow); void dKyw_evt_wind_set_go(); void dKyw_wether_proc(); void dKyw_get_AllWind_vec(cXyz* param_0, cXyz* param_1, f32* param_2); +void dKyw_pntwind_cut(WIND_INFLUENCE* i_pntwind); +cXyz dKyw_pntwind_get_vecpow(cXyz* param_0); class dKankyo_sun_Packet : public J3DPacket { public: @@ -79,7 +82,7 @@ struct RAIN_EFF { /* 80056CD0 */ ~RAIN_EFF(); /* 80056D0C */ RAIN_EFF(); - /* 0x00 */ u8 mStatus; + /* 0x00 */ s8 mStatus; /* 0x04 */ cXyz mPosition; /* 0x10 */ cXyz mBasePos; /* 0x1C */ f32 field_0x1c; @@ -176,14 +179,18 @@ struct HOUSI_EFF { /* 80056EA8 */ ~HOUSI_EFF(); /* 80056EE4 */ HOUSI_EFF(); - /* 0x00 */ u8 mStatus; + /* 0x00 */ s8 mStatus; /* 0x04 */ cXyz mPosition; /* 0x10 */ cXyz mBasePos; /* 0x1C */ cXyz mSpeed; /* 0x28 */ cXyz mScale; - /* 0x34 */ u8 field_0x34[0x40 - 0x34]; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ u16 field_0x3c; /* 0x40 */ f32 mAlpha; - /* 0x44 */ u8 field_0x44[0x50 - 0x44]; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ u16 field_0x4c; }; // Size: 0x50 class dKankyo_housi_Packet : public J3DPacket { @@ -196,7 +203,7 @@ public: /* 0x0020 */ HOUSI_EFF mHousiEff[300]; /* 0x5DE0 */ u8 field_0x5de0[8]; /* 0x5DE8 */ f32 field_0x5de8; - /* 0x5DEC */ u8 field_0x5dec[4]; + /* 0x5DEC */ s16 field_0x5dec; }; // Size: 0x5DF0 struct CLOUD_EFF { diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h index 00e95d7c21..3bffd93ce1 100644 --- a/include/d/particle/d_particle.h +++ b/include/d/particle/d_particle.h @@ -16,7 +16,7 @@ class fopAc_ac_c; class dPa_levelEcallBack : public JPAEmitterCallBack { public: - /* 8004FB18 */ virtual ~dPa_levelEcallBack(); + /* 8004FB18 */ virtual ~dPa_levelEcallBack(); /* { cleanup(); } */ // should be inlined virtual void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8) = 0; /* 8004FB8C */ virtual void cleanup(); }; @@ -27,7 +27,7 @@ public: /* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*); - /* 8004FCC8 */ virtual ~dPa_hermiteEcallBack_c(); + /* 8004FCC8 */ virtual ~dPa_hermiteEcallBack_c(); // should be inlined /* 8004F6C4 */ virtual void executeAfter(JPABaseEmitter*); /* 8004FABC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 20fa0d21dc..c40dc272c8 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -284,6 +284,12 @@ public: */ static void XrotM(s16 x) { mDoMtx_XrotM(now, x); } + /** + * Rotates the `now` matrix on the Z-axis + * @param z The rotation value + */ + static void ZrotS(s16 z) { mDoMtx_ZrotS(now, z); } + /** * Rotates a new matrix on the z-axis then concatenates it with the `now` matrix * @param z The rotation value diff --git a/include/rel/d/a/b/d_a_b_dr/d_a_b_dr.h b/include/rel/d/a/b/d_a_b_dr/d_a_b_dr.h index 12c8d319af..1432ff6d70 100644 --- a/include/rel/d/a/b/d_a_b_dr/d_a_b_dr.h +++ b/include/rel/d/a/b/d_a_b_dr/d_a_b_dr.h @@ -1,6 +1,161 @@ #ifndef D_A_B_DR_H #define D_A_B_DR_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daB_DR_c : public fopEn_enemy_c { +public: + /* 805BAF80 */ void ctrlJoint(J3DJoint*, J3DModel*); + /* 805BB120 */ void JointCallBack(J3DJoint*, int); + /* 805BB16C */ void draw(); + /* 805BB408 */ void setBck(int, u8, f32, f32); + /* 805BB4B4 */ void setActionMode(int, int); + /* 805BB4CC */ void mGlider_WindPosSet(); + /* 805BB540 */ void mBoot_c_tranceSet(bool); + /* 805BB64C */ void mStatusONOFF(int); + /* 805BB6E8 */ void setSe(); + /* 805BBFC0 */ void setDeathLightEffect(); + /* 805BC0B8 */ void chkPartCreate(bool); + /* 805BC248 */ void mHabatakiAnmSet(int); + /* 805BC57C */ void mGlider_AniSet(bool); + /* 805BC8B4 */ void mGliderAtAniSet(); + /* 805BCA10 */ void tail_hit_check(); + /* 805BCAD4 */ void week_hit_check(); + /* 805BCBD0 */ void mTimerClr(); + /* 805BCBF4 */ void mCountClr(); + /* 805BCC18 */ void mAllClr(); + /* 805BCC4C */ void mHeadAngleSet(); + /* 805BCD7C */ void flapMove(bool); + /* 805BCEA4 */ void revolutionMove(); + /* 805BD05C */ void mPlayerHighCheck(); + /* 805BD15C */ void mBgFallGroundCheck(); + /* 805BD3E4 */ void normalHoverMove(); + /* 805BD5FC */ void executeWait(); + /* 805BD98C */ void executeFlyWait(); + /* 805BDBC4 */ void executeTailHit(); + /* 805BE9B4 */ void executeWeekHit(); + /* 805BF4C8 */ void mBreathSet(); + /* 805BF768 */ void mBreathHighSet(bool); + /* 805BFA6C */ void mFeintBreath(); + /* 805BFD88 */ void executeBreathAttack(); + /* 805C062C */ void executeWindAttack(); + /* 805C0CAC */ void mGliderMoveSub(f32); + /* 805C0EF8 */ void executeGliderAttack(); + /* 805C1E0C */ void executePillarSearch(); + /* 805C24BC */ void executePillarWait(); + /* 805C2BE8 */ void startDemoCheck(); + /* 805C2CD0 */ void executeDamageDemo(); + /* 805C3558 */ void executeMiddleDemo(); + /* 805C36A4 */ void executeDead(); + /* 805C382C */ void executeBullet(); + /* 805C39D8 */ void executeParts(); + /* 805C3CB0 */ void action(); + /* 805C40E0 */ void action_fire(); + /* 805C4130 */ void action_parts(); + /* 805C41A4 */ void mtx_set(); + /* 805C4684 */ void parts_mtx_set(); + /* 805C46E0 */ void cc_set(); + /* 805C4E14 */ void down_cc_set(); + /* 805C4FB4 */ void demo_skip(int); + /* 805C50BC */ void DemoSkipCallBack(void*, int); + /* 805C50F0 */ void execute(); + /* 805C55B0 */ void _delete(); + /* 805C56A4 */ void CreateHeap(); + /* 805C5974 */ void create(); + /* 805C62B0 */ daB_DR_c(); + + void onTarget() { mTarget = true; } + bool isBack() { return mPrm0; } + + /* 0x05AC */ request_of_phase_process_class mPhase; + /* 0x05B4 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x05B8 */ J3DModel* mpPartModel; + /* 0x05BC */ mDoExt_brkAnm* mpCoreBrk; + /* 0x05C0 */ Z2CreatureEnemy field_0x5c0; + /* 0x0664 */ Z2CreatureEnemy field_0x664; + /* 0x0708 */ int mAction; + /* 0x070C */ int mMode; + /* 0x0710 */ int mAnmID; + /* 0x0714 */ u8 field_0x714[0x0718 - 0x0714]; + /* 0x0718 */ int field_0x718; + /* 0x071C */ u8 field_0x71C[0x0720 - 0x071C]; + /* 0x0720 */ f32 field_0x720; + /* 0x0724 */ f32 field_0x724; + /* 0x0728 */ f32 field_0x728; + /* 0x072C */ f32 field_0x72c; + /* 0x0730 */ u8 field_0x730[0x0734 - 0x0730]; + /* 0x0734 */ f32 field_0x734; + /* 0x0738 */ u8 field_0x738[0x073C - 0x0738]; + /* 0x073C */ f32 field_0x73c; + /* 0x0740 */ f32 field_0x740; + /* 0x0744 */ f32 field_0x744; + /* 0x0748 */ f32 field_0x748; + /* 0x074C */ s16 field_0x74c; + /* 0x074E */ s16 field_0x74e; + /* 0x0750 */ s16 field_0x750; + /* 0x0752 */ s16 field_0x752; + /* 0x0754 */ s16 field_0x754; + /* 0x0756 */ s16 field_0x756; + /* 0x0758 */ s16 field_0x758; + /* 0x075A */ s16 field_0x75a; + /* 0x075C */ u8 field_0x75C[0x0760 - 0x075C]; + /* 0x0760 */ cXyz field_0x760; + /* 0x076C */ cXyz field_0x76c; + /* 0x0778 */ cXyz field_0x778; + /* 0x0784 */ cXyz field_0x784; + /* 0x0790 */ cXyz field_0x790; + /* 0x079C */ cXyz field_0x79c; + /* 0x07A8 */ cXyz field_0x7a8; + /* 0x07B4 */ cXyz field_0x7b4; + /* 0x07C0 */ int mTimer[4]; + /* 0x07D0 */ u8 field_0x7d0; + /* 0x07D1 */ u8 field_0x7d1; + /* 0x07D2 */ u8 field_0x7d2; + /* 0x07D3 */ u8 field_0x7d3; + /* 0x07D4 */ u8 field_0x7d4; + /* 0x07D5 */ u8 field_0x7D5[0x07D6 - 0x07D5]; + /* 0x07D6 */ u8 field_0x7d6; + /* 0x07D7 */ u8 field_0x7d7; + /* 0x07D8 */ u8 field_0x7D8[0x07D9 - 0x07D8]; + /* 0x07D9 */ u8 mTarget; + /* 0x07DA */ u8 field_0x7DA[0x07DB - 0x07DA]; + /* 0x07DB */ u8 field_0x7db; + /* 0x07DC */ u8 field_0x7DC[0x07E0 - 0x07DC]; + /* 0x07E0 */ int field_0x7e0; + /* 0x07E4 */ u8 field_0x7e4[4]; + /* 0x07E8 */ u8 field_0x7e8; + /* 0x07E9 */ u8 field_0x7E9[0x07EA - 0x07E9]; + /* 0x07EA */ u8 mPrm0; + /* 0x07EB */ u8 field_0x7eb; + /* 0x07EC */ u8 mPrm1; + /* 0x07ED */ u8 mPrm2; + /* 0x07EE */ u8 mPrm3; + /* 0x07EF */ u8 field_0x7EF[0x07F0 - 0x07EF]; + /* 0x07F0 */ dBgS_AcchCir mAcchCir; + /* 0x0830 */ dBgS_ObjAcch mAcch; + /* 0x0A08 */ dCcD_Stts field_0xa08; + /* 0x0A44 */ dCcD_Cyl mWeekCc; + /* 0x0B80 */ dCcD_Sph mFootAtCc[2]; + /* 0x0DF0 */ dCcD_Sph field_0xdf0; + /* 0x0F28 */ dCcD_Sph mBreathAtCc; + /* 0x1060 */ dCcD_Sph mWindAtCc; + /* 0x1198 */ dCcD_Sph mWindAtCc2; + /* 0x12D0 */ dCcD_Sph mWindAtCc3; + /* 0x1408 */ dCcD_Sph mTailCc; + /* 0x1540 */ dCcD_Cyl mPillarCc; + /* 0x167C */ dCcD_Sph mDownSphCc[9]; + /* 0x2174 */ dCcD_Cyl mDownCc[5]; + /* 0x27A0 */ u8 field_0x27A0[0x27A8 - 0x27A0]; + /* 0x27A8 */ Z2CreatureEnemy* field_0x27a8; + /* 0x27AC */ u8 field_0x27AC[0x27C4 - 0x27AC]; + /* 0x27C4 */ cXyz field_0x27c4; + /* 0x27D0 */ cXyz field_0x27d0; + /* 0x27DC */ u32 field_0x27dc[4]; + /* 0x27EC */ u32 field_0x27ec[4]; + /* 0x27FC */ u32 field_0x27fc[4]; + /* 0x280C */ u32 field_0x280c; + /* 0x2810 */ u8 field_0x2810[0x2814 - 0x2810]; + /* 0x2814 */ dMsgFlow_c mMsgFlow; +}; #endif /* D_A_B_DR_H */ diff --git a/include/rel/d/a/d_a_andsw2/d_a_andsw2.h b/include/rel/d/a/d_a_andsw2/d_a_andsw2.h index 9d68bfe21a..9d5540b6f2 100644 --- a/include/rel/d/a/d_a_andsw2/d_a_andsw2.h +++ b/include/rel/d/a/d_a_andsw2/d_a_andsw2.h @@ -1,6 +1,40 @@ #ifndef D_A_ANDSW2_H #define D_A_ANDSW2_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daAndsw2_c : public fopAc_ac_c { +public: + enum Action_e { + ACT_ON_ALL_e, + ACT_TIMER_e, + ACT_ORDER_e, + ACT_EVENT_e, + ACT_OFF_e, + ACT_WAIT_e, + }; + + /* 804D5DF8 */ u8 getEventNo(); + /* 804D5E04 */ u8 getSwbit(); + /* 804D5E10 */ u8 getSwbit2(); + /* 804D5E1C */ u8 getType(); + /* 804D5E28 */ u8 getTimer(); + /* 804D5E34 */ u8 getNum(); + /* 804D5E40 */ u8 getTopSw(); + /* 804D5EB0 */ u8 getSwAns(); + /* 804D5EBC */ BOOL chkAllSw2(); + /* 804D5F64 */ bool chkSwStatus(); + /* 804D6024 */ bool chkSwStatus2(); + /* 804D60CC */ ~daAndsw2_c(); + /* 804D6120 */ int create(); + + inline int execute(); + + void setActio(u8 i_action) { mAction = i_action; } + + /* 0x568 */ s16 mTimer; + /* 0x56A */ s16 mEventIdx; + /* 0x56C */ u8 mAction; +}; #endif /* D_A_ANDSW2_H */ diff --git a/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h b/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h index 247d1fbbe7..150116fa12 100644 --- a/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h +++ b/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h @@ -32,6 +32,7 @@ public: /* 80CFCD98 */ virtual int Delete(); void setHangPlayer() { mHangPlayer = 1; } + u8 getType() { return field_0x730; } /* 0x5A0 */ dEvLib_callback_c field_0x5a0; /* 0x5B0 */ request_of_phase_process_class mPhase; diff --git a/obj_files.mk b/obj_files.mk index 1373930164..8bd871cddf 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -1048,4 +1048,5 @@ RELS := \ O_FILES_SYM_ON := \ $(BUILD_DIR)/src/c/c_dylink.o \ + $(BUILD_DIR)/src/d/a/d_a_alink.o \ $(BUILD_DIR)/src/DynamicLink.o \ diff --git a/rel/d/a/b/d_a_b_dr/d_a_b_dr.cpp b/rel/d/a/b/d_a_b_dr/d_a_b_dr.cpp index 998021150c..1b6e80ce7c 100644 --- a/rel/d/a/b/d_a_b_dr/d_a_b_dr.cpp +++ b/rel/d/a/b/d_a_b_dr/d_a_b_dr.cpp @@ -3,7 +3,8 @@ // Translation Unit: d_a_b_dr // -#include "rel/d/a/b/d_a_b_dr/d_a_b_dr.h" +// #include "rel/d/a/b/d_a_b_dr/d_a_b_dr.h" +#include "dolphin/types.h" #include "dol2asm.h" // diff --git a/rel/d/a/d_a_andsw2/d_a_andsw2.cpp b/rel/d/a/d_a_andsw2/d_a_andsw2.cpp index 0b9988b468..e48366fa04 100644 --- a/rel/d/a/d_a_andsw2/d_a_andsw2.cpp +++ b/rel/d/a/d_a_andsw2/d_a_andsw2.cpp @@ -4,47 +4,10 @@ // #include "rel/d/a/d_a_andsw2/d_a_andsw2.h" -#include "dol2asm.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daAndsw2_c { - /* 804D5DF8 */ void getEventNo(); - /* 804D5E04 */ void getSwbit(); - /* 804D5E10 */ void getSwbit2(); - /* 804D5E1C */ void getType(); - /* 804D5E28 */ void getTimer(); - /* 804D5E34 */ void getNum(); - /* 804D5E40 */ void getTopSw(); - /* 804D5EB0 */ void getSwAns(); - /* 804D5EBC */ void chkAllSw2(); - /* 804D5F64 */ void chkSwStatus(); - /* 804D6024 */ void chkSwStatus2(); - /* 804D60CC */ ~daAndsw2_c(); - /* 804D6120 */ void create(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -struct dEvent_manager_c { - /* 80047698 */ void getEventIdx(fopAc_ac_c*, u8); - /* 80047A78 */ void endCheck(s16); -}; +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_lib.h" +#include "d/d_procname.h" // // Forward References: @@ -52,314 +15,403 @@ struct dEvent_manager_c { extern "C" void getEventNo__10daAndsw2_cFv(); extern "C" void getSwbit__10daAndsw2_cFv(); -extern "C" void getSwbit2__10daAndsw2_cFv(); extern "C" void getType__10daAndsw2_cFv(); -extern "C" void getTimer__10daAndsw2_cFv(); -extern "C" void getNum__10daAndsw2_cFv(); -extern "C" void getTopSw__10daAndsw2_cFv(); -extern "C" void getSwAns__10daAndsw2_cFv(); extern "C" void chkAllSw2__10daAndsw2_cFv(); extern "C" void chkSwStatus__10daAndsw2_cFv(); -extern "C" void chkSwStatus2__10daAndsw2_cFv(); -extern "C" void __dt__10daAndsw2_cFv(); -extern "C" void create__10daAndsw2_cFv(); -extern "C" static void daAndsw2_actionOnAll__FP10daAndsw2_c(); -extern "C" static void daAndsw2_actionTimer__FP10daAndsw2_c(); -extern "C" static void daAndsw2_actionOrder__FP10daAndsw2_c(); -extern "C" static void daAndsw2_actionEvent__FP10daAndsw2_c(); -extern "C" static void daAndsw2_actionOff__FP10daAndsw2_c(); -extern "C" static bool daAndsw2_actionWait__FP10daAndsw2_c(); -extern "C" static void daAndsw2_Execute__FP10daAndsw2_c(); -extern "C" static void daAndsw2_Delete__FP10daAndsw2_c(); -extern "C" static void daAndsw2_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_ANDSW2[12]; // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); extern "C" void dLib_getEventSwitchNo__Fi(); extern "C" void onSwitch__10dSv_info_cFii(); extern "C" void offSwitch__10dSv_info_cFii(); extern "C" void isSwitch__10dSv_info_cCFii(); -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 __dl__FPv(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -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 u8 g_dComIfG_gameInfo[122384]; // // Declarations: // /* 804D5DF8-804D5E04 000078 000C+00 2/2 0/0 0/0 .text getEventNo__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getEventNo() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getEventNo__10daAndsw2_cFv.s" +u8 daAndsw2_c::getEventNo() { + return orig.angle.x & 0xFF; } -#pragma pop /* 804D5E04-804D5E10 000084 000C+00 6/6 0/0 0/0 .text getSwbit__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getSwbit() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit__10daAndsw2_cFv.s" +u8 daAndsw2_c::getSwbit() { + return fopAcM_GetParam(this) >> 0x10; } -#pragma pop /* 804D5E10-804D5E1C 000090 000C+00 1/1 0/0 0/0 .text getSwbit2__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getSwbit2() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwbit2__10daAndsw2_cFv.s" +u8 daAndsw2_c::getSwbit2() { + return fopAcM_GetParam(this) >> 0x18; } -#pragma pop /* 804D5E1C-804D5E28 00009C 000C+00 6/6 0/0 0/0 .text getType__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getType() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getType__10daAndsw2_cFv.s" +u8 daAndsw2_c::getType() { + return fopAcM_GetParam(this) >> 0x8; } -#pragma pop /* 804D5E28-804D5E34 0000A8 000C+00 1/1 0/0 0/0 .text getTimer__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getTimer() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTimer__10daAndsw2_cFv.s" +u8 daAndsw2_c::getTimer() { + return orig.angle.z & 0xFF; } -#pragma pop /* 804D5E34-804D5E40 0000B4 000C+00 3/3 0/0 0/0 .text getNum__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getNum() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getNum__10daAndsw2_cFv.s" +u8 daAndsw2_c::getNum() { + return fopAcM_GetParam(this) & 0xFF; } -#pragma pop /* 804D5E40-804D5EB0 0000C0 0070+00 3/3 0/0 0/0 .text getTopSw__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getTopSw() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getTopSw__10daAndsw2_cFv.s" +u8 daAndsw2_c::getTopSw() { + if (getSwbit2() != 0xFF) { + return getSwbit2(); + } else if (getSwbit() != 0xFF) { + return getSwbit() + 1; + } else { + return 0xFF; + } } -#pragma pop /* 804D5EB0-804D5EBC 000130 000C+00 1/1 0/0 0/0 .text getSwAns__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::getSwAns() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/getSwAns__10daAndsw2_cFv.s" +u8 daAndsw2_c::getSwAns() { + return (orig.angle.x >> 8) & 0xFF; } -#pragma pop /* 804D5EBC-804D5F64 00013C 00A8+00 4/4 0/0 0/0 .text chkAllSw2__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::chkAllSw2() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkAllSw2__10daAndsw2_cFv.s" +BOOL daAndsw2_c::chkAllSw2() { + int top_sw = getTopSw(); + int num = getNum(); + + if (num == 0xFF || num == 0 || top_sw == 0xFF) { + return false; + } + + for (int i = 0; i < num; i++) { + if (!dComIfGs_isSwitch(top_sw + i, fopAcM_GetRoomNo(this))) { + return false; + } + } + + return true; } -#pragma pop /* 804D5F64-804D6024 0001E4 00C0+00 4/4 0/0 0/0 .text chkSwStatus__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::chkSwStatus() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus__10daAndsw2_cFv.s" +bool daAndsw2_c::chkSwStatus() { + int top_sw = getTopSw(); + int num = getNum(); + u8 status = 0; + + if (num == 0xFF || num == 0 || top_sw == 0xFF) { + return false; + } + + for (int i = 0; i < num; i++) { + status |= dComIfGs_isSwitch(top_sw + i, fopAcM_GetRoomNo(this)) << i; + } + + if (status == getSwAns()) { + return true; + } + + return false; } -#pragma pop /* 804D6024-804D60CC 0002A4 00A8+00 1/1 0/0 0/0 .text chkSwStatus2__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::chkSwStatus2() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/chkSwStatus2__10daAndsw2_cFv.s" +bool daAndsw2_c::chkSwStatus2() { + int top_sw = getTopSw(); + int num = getNum(); + + if (num == 0xFF || num == 0 || top_sw == 0xFF) { + return false; + } + + for (int i = 0; i < num; i++) { + if (dComIfGs_isSwitch(top_sw + i, fopAcM_GetRoomNo(this))) { + return true; + } + } + + return false; } -#pragma pop /* 804D60CC-804D6120 00034C 0054+00 1/1 0/0 0/0 .text __dt__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daAndsw2_c::~daAndsw2_c() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/__dt__10daAndsw2_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 804D6AC8-804D6AE4 -00001 001C+00 1/1 0/0 0/0 .data @3821 */ -SECTION_DATA static void* lit_3821[7] = { - (void*)(((char*)create__10daAndsw2_cFv) + 0x74), - (void*)(((char*)create__10daAndsw2_cFv) + 0xD8), - (void*)(((char*)create__10daAndsw2_cFv) + 0x148), - (void*)(((char*)create__10daAndsw2_cFv) + 0x1AC), - (void*)(((char*)create__10daAndsw2_cFv) + 0x210), - (void*)(((char*)create__10daAndsw2_cFv) + 0x21C), - (void*)(((char*)create__10daAndsw2_cFv) + 0xD8), -}; +daAndsw2_c::~daAndsw2_c() {} /* 804D6120-804D63A4 0003A0 0284+00 2/1 0/0 0/0 .text create__10daAndsw2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAndsw2_c::create() { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/create__10daAndsw2_cFv.s" +int daAndsw2_c::create() { + int sw = getSwbit(); + fopAcM_SetupActor(this, daAndsw2_c); + + switch (getType()) { + case 0: + if (sw == 0xFF || dComIfGs_isSwitch(sw, fopAcM_GetRoomNo(this))) { + setActio(ACT_WAIT_e); + } else { + setActio(ACT_ON_ALL_e); + } + + mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, getEventNo()); + break; + case 1: + case 6: + if (sw == 0xFF) { + setActio(ACT_WAIT_e); + } else if (dComIfGs_isSwitch(sw, fopAcM_GetRoomNo(this))) { + setActio(ACT_OFF_e); + } else { + setActio(ACT_ON_ALL_e); + } + + mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, getEventNo()); + break; + case 2: + if (sw == 0xFF || dComIfGs_isSwitch(sw, fopAcM_GetRoomNo(this))) { + setActio(ACT_WAIT_e); + } else { + setActio(ACT_ON_ALL_e); + } + + mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, getEventNo()); + break; + case 3: + if (sw == 0xFF || dComIfGs_isSwitch(sw, fopAcM_GetRoomNo(this))) { + setActio(ACT_OFF_e); + } else { + setActio(ACT_ON_ALL_e); + } + + mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, getEventNo()); + break; + case 4: + setActio(ACT_ON_ALL_e); + break; + case 5: + setActio(ACT_ON_ALL_e); + mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, getEventNo()); + break; + default: + setActio(ACT_WAIT_e); + break; + } + + shape_angle.z = 0; + shape_angle.x = 0; + current.angle.z = 0; + current.angle.x = 0; + + return cPhs_COMPLEATE_e; } -#pragma pop /* 804D63A4-804D6580 000624 01DC+00 1/0 0/0 0/0 .text daAndsw2_actionOnAll__FP10daAndsw2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAndsw2_actionOnAll(daAndsw2_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOnAll__FP10daAndsw2_c.s" +static int daAndsw2_actionOnAll(daAndsw2_c* i_this) { + u8 var_r29 = false; + + switch (i_this->getType()) { + case 0: + case 1: + case 5: + case 6: + BOOL temp_r0 = i_this->chkAllSw2() != 0; + var_r29 = temp_r0; + break; + case 2: + case 3: + BOOL temp_r0_2 = i_this->chkSwStatus() != 0; + var_r29 = temp_r0_2; + break; + case 4: + if (!dComIfGs_isSwitch(i_this->getSwbit(), fopAcM_GetRoomNo(i_this))) { + BOOL temp_r0 = i_this->chkSwStatus2() != 0; + var_r29 = temp_r0; + } + break; + } + + if (var_r29) { + if (i_this->getTimer() != 0xFF) { + i_this->mTimer = i_this->getTimer() * 15; + i_this->setActio(daAndsw2_c::ACT_TIMER_e); + } else if (i_this->mEventIdx != -1 && i_this->getType() != 4) { + i_this->setActio(daAndsw2_c::ACT_ORDER_e); + } else { + dComIfGs_onSwitch(i_this->getSwbit(), fopAcM_GetRoomNo(i_this)); + + if (i_this->getType() == 1 || i_this->getType() == 3 || i_this->getType() == 6) { + i_this->setActio(daAndsw2_c::ACT_OFF_e); + } else if (i_this->getType() != 4) { + i_this->setActio(daAndsw2_c::ACT_WAIT_e); + } + } + } + + return 1; } -#pragma pop /* 804D6580-804D6704 000800 0184+00 1/0 0/0 0/0 .text daAndsw2_actionTimer__FP10daAndsw2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAndsw2_actionTimer(daAndsw2_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionTimer__FP10daAndsw2_c.s" +static int daAndsw2_actionTimer(daAndsw2_c* i_this) { + if ((i_this->getType() == 1 && !i_this->chkAllSw2()) || + (i_this->getType() == 3 && !i_this->chkSwStatus()) || + (i_this->getType() == 5 && !i_this->chkAllSw2()) || + (i_this->getType() == 6 && !i_this->chkAllSw2())) + { + i_this->setActio(daAndsw2_c::ACT_ON_ALL_e); + } else if (i_this->mTimer > 0) { + i_this->mTimer--; + } else if (i_this->mEventIdx != -1) { + i_this->setActio(daAndsw2_c::ACT_ORDER_e); + } else { + dComIfGs_onSwitch(i_this->getSwbit(), fopAcM_GetRoomNo(i_this)); + if (i_this->getType() == 1 || i_this->getType() == 5) { + i_this->setActio(daAndsw2_c::ACT_WAIT_e); + } else if (i_this->getType() == 3 || i_this->getType() == 6) { + i_this->setActio(daAndsw2_c::ACT_OFF_e); + } + } + + return 1; } -#pragma pop /* 804D6704-804D68A4 000984 01A0+00 1/0 0/0 0/0 .text daAndsw2_actionOrder__FP10daAndsw2_c */ +// missing mr / out of order instruction +#ifdef NONMATCHING +static int daAndsw2_actionOrder(daAndsw2_c* i_this) { + if (i_this->mEvtInfo.i_checkCommandDemoAccrpt()) { + i_this->setActio(daAndsw2_c::ACT_EVENT_e); + dComIfGs_onSwitch(i_this->getSwbit(), fopAcM_GetRoomNo(i_this)); + } else if ((i_this->getType() == 1 && !i_this->chkAllSw2()) || + (i_this->getType() == 3 && !i_this->chkSwStatus()) || + (i_this->getType() == 5 && !i_this->chkAllSw2()) || + (i_this->getType() == 6 && !i_this->chkAllSw2())) + { + i_this->setActio(daAndsw2_c::ACT_ON_ALL_e); + } else { + if (i_this->getType() == 5 && + i_fopAcM_isSwitch(i_this, dLib_getEventSwitchNo(i_this->getEventNo()))) + { + dComIfGs_onSwitch(i_this->getSwbit(), fopAcM_GetRoomNo(i_this)); + i_this->setActio(daAndsw2_c::ACT_OFF_e); + } + + fopAcM_orderOtherEventId(i_this, i_this->mEventIdx, i_this->getEventNo(), 0xFFFF, 0, 1); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daAndsw2_actionOrder(daAndsw2_c* param_0) { +static asm int daAndsw2_actionOrder(daAndsw2_c* param_0) { nofralloc #include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOrder__FP10daAndsw2_c.s" } #pragma pop +#endif /* 804D68A4-804D6960 000B24 00BC+00 1/0 0/0 0/0 .text daAndsw2_actionEvent__FP10daAndsw2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAndsw2_actionEvent(daAndsw2_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionEvent__FP10daAndsw2_c.s" +static int daAndsw2_actionEvent(daAndsw2_c* i_this) { + if (dComIfGp_evmng_endCheck(i_this->mEventIdx)) { + if (i_this->getType() == 1 || i_this->getType() == 3 || i_this->getType() == 5 || + i_this->getType() == 6) + { + i_this->setActio(daAndsw2_c::ACT_OFF_e); + } else { + i_this->setActio(daAndsw2_c::ACT_WAIT_e); + } + + i_dComIfGp_event_reset(); + } + + return 1; } -#pragma pop /* 804D6960-804D6A34 000BE0 00D4+00 1/0 0/0 0/0 .text daAndsw2_actionOff__FP10daAndsw2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAndsw2_actionOff(daAndsw2_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_actionOff__FP10daAndsw2_c.s" +static int daAndsw2_actionOff(daAndsw2_c* i_this) { + u8 var_r29 = false; + + switch (i_this->getType()) { + case 0: + case 1: + case 5: + case 6: + BOOL temp_r0 = i_this->chkAllSw2() != 0; + var_r29 = temp_r0; + break; + case 2: + case 3: + BOOL temp_r0_2 = i_this->chkSwStatus() != 0; + var_r29 = temp_r0_2; + break; + case 4: + break; + } + + if (!var_r29) { + i_this->setActio(daAndsw2_c::ACT_ON_ALL_e); + dComIfGs_offSwitch(i_this->getSwbit(), fopAcM_GetRoomNo(i_this)); + } + + return 1; } -#pragma pop /* 804D6A34-804D6A3C 000CB4 0008+00 1/0 0/0 0/0 .text daAndsw2_actionWait__FP10daAndsw2_c */ -static bool daAndsw2_actionWait(daAndsw2_c* param_0) { - return true; +static int daAndsw2_actionWait(daAndsw2_c* i_this) { + return 1; } -/* ############################################################################################## */ -/* 804D6AE4-804D6AFC -00001 0018+00 1/1 0/0 0/0 .data - * l_action$localstatic3$execute__10daAndsw2_cFv */ -SECTION_DATA static void* data_804D6AE4[6] = { - (void*)daAndsw2_actionOnAll__FP10daAndsw2_c, (void*)daAndsw2_actionTimer__FP10daAndsw2_c, - (void*)daAndsw2_actionOrder__FP10daAndsw2_c, (void*)daAndsw2_actionEvent__FP10daAndsw2_c, - (void*)daAndsw2_actionOff__FP10daAndsw2_c, (void*)daAndsw2_actionWait__FP10daAndsw2_c, -}; +int daAndsw2_c::execute() { + typedef int (*actionFunc)(daAndsw2_c*); + static actionFunc l_action[] = { + &daAndsw2_actionOnAll, &daAndsw2_actionTimer, &daAndsw2_actionOrder, + &daAndsw2_actionEvent, &daAndsw2_actionOff, &daAndsw2_actionWait, + }; + + (*l_action[mAction])(this); + return 1; +} /* 804D6A3C-804D6A78 000CBC 003C+00 1/0 0/0 0/0 .text daAndsw2_Execute__FP10daAndsw2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAndsw2_Execute(daAndsw2_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Execute__FP10daAndsw2_c.s" +static int daAndsw2_Execute(daAndsw2_c* i_this) { + return i_this->execute(); } -#pragma pop /* 804D6A78-804D6AA0 000CF8 0028+00 1/0 0/0 0/0 .text daAndsw2_Delete__FP10daAndsw2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAndsw2_Delete(daAndsw2_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Delete__FP10daAndsw2_c.s" +static int daAndsw2_Delete(daAndsw2_c* i_this) { + i_this->~daAndsw2_c(); + return 1; } -#pragma pop /* 804D6AA0-804D6AC0 000D20 0020+00 1/0 0/0 0/0 .text daAndsw2_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAndsw2_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_andsw2/d_a_andsw2/daAndsw2_Create__FP10fopAc_ac_c.s" +static int daAndsw2_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* ############################################################################################## */ /* 804D6AFC-804D6B1C -00001 0020+00 1/0 0/0 0/0 .data l_daAndsw2_Method */ -SECTION_DATA static void* l_daAndsw2_Method[8] = { - (void*)daAndsw2_Create__FP10fopAc_ac_c, - (void*)daAndsw2_Delete__FP10daAndsw2_c, - (void*)daAndsw2_Execute__FP10daAndsw2_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daAndsw2_Method = { + (process_method_func)daAndsw2_Create, + (process_method_func)daAndsw2_Delete, + (process_method_func)daAndsw2_Execute, }; /* 804D6B1C-804D6B4C -00001 0030+00 0/0 0/0 1/0 .data g_profile_ANDSW2 */ -SECTION_DATA extern void* g_profile_ANDSW2[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02310000, (void*)&g_fpcLf_Method, - (void*)0x00000570, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x012F0000, (void*)&l_daAndsw2_Method, - (void*)0x00044000, (void*)0x00060000, +extern actor_process_profile_definition g_profile_ANDSW2 = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_ANDSW2, // mProcName + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daAndsw2_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // mSubMtd + 303, // mPriority + &l_daAndsw2_Method, // mSubMtd + 0x44000, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_6_e, // mCullType }; diff --git a/rel/d/a/d_a_grass/Makefile b/rel/d/a/d_a_grass/Makefile index e0e90fda50..166d43ddd5 100644 --- a/rel/d/a/d_a_grass/Makefile +++ b/rel/d/a/d_a_grass/Makefile @@ -21,6 +21,7 @@ M73_LIBS := \ M73_CFLAGS := \ -sdata 0 \ -sdata2 0 \ + -sym on \ M73_LDFLAGS := \ -nodefaults \ diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 3155fbd755..9cec30fce6 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -5831,7 +5831,7 @@ SECTION_RODATA static u8 const hsVec[12] = { COMPILER_STRIP_GATE(0x803919FC, &hsVec); /* 80391A08-80391A14 01E068 000C+00 1/1 0/0 0/0 .rodata hookRoot$29726 */ -SECTION_RODATA static f32 const hookRoot[3] = { +SECTION_RODATA static Vec const hookRoot = { 0.0f, 0.0f, 23.5f, @@ -16870,7 +16870,7 @@ void daAlink_c::posMove() { if (checkRootTransClearMode()) { cXyz sp78 = field_0x34d4 - sp108; - if (mProcID == PROC_CLIMB_UP_START && field_0x3012 != 0) { + if (mProcID == PROC_CLIMB_UP_START && field_0x300e.z != 0) { sp78 = cXyz::Zero; } @@ -17454,7 +17454,7 @@ void daAlink_c::setMetamorphoseModel(int param_0) { J3DModelData* model_data = loadAramBmd(0x31B, 0x6000); mHeldItemModel = initModel(model_data, 0); - field_0x730.init(bck, 0, 2, lit_6040, 0, -1, false); + mItemBck.init(bck, 0, 2, lit_6040, 0, -1, false); mDoExt_setCurrentHeap(heap); mEquipItem = 0x106; @@ -17718,11 +17718,11 @@ J3DAnmTexPattern* daAlink_c::loadAramItemBtp(u16 i_resID, J3DModel* i_model) { void daAlink_c::changeItemBck(u16 i_resID, f32 param_1) { J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(i_resID); if (bck != NULL) { - field_0x730.changeBckOnly(bck); + mItemBck.changeBckOnly(bck); } if (param_1 < 0.0f) { - field_0x33dc = field_0x730.getBckAnm()->getFrameMax(); + field_0x33dc = mItemBck.getBckAnm()->getFrameMax(); } else { field_0x33dc = param_1; } @@ -18378,151 +18378,6 @@ BOOL daAlink_c::commonProcInitNotSameProc(daAlink_PROC procID) { #include "d/a/d_a_alink_grab.inc" -/* 800E91B0-800E91C4 0E3AF0 0014+00 1/1 0/0 0/0 .text daAlink_searchGoat__FP10fopAc_ac_cPv */ -static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void*) { - if (fopAcM_GetName(i_actor) == PROC_COW) { - return i_actor; - } - - return NULL; -} - -/* 800E91C4-800E9210 0E3B04 004C+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daAlink_cFv - */ -void daAlink_c::cancelGoronThrowEvent() { - if (mProcID == PROC_GOAT_CATCH && field_0x3012 == 0) { - field_0x3012 = 1; - i_dComIfGp_event_reset(); - } -} - -/* 800E9210-800E9344 0E3B50 0134+00 2/2 0/0 0/0 .text - * setGoatStopGameFail__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setGoatStopGameFail(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setGoatStopGameFail__9daAlink_cFP10fopAc_ac_c.s" -} -#pragma pop - -/* 800E9344-800E9434 0E3C84 00F0+00 1/1 0/0 0/0 .text procGoatMoveInit__9daAlink_cFv */ -int daAlink_c::procGoatMoveInit() { - if (!commonProcInitNotSameProc(PROC_GOAT_MOVE)) { - return 0; - } - - if (checkZeroSpeedF()) { - onModeFlg(1); - } - - mNormalSpeed = FLOAT_LABEL(lit_6108); - field_0x37c8 = current.pos; - field_0x2f98 = 3; - current.angle.y = shape_angle.y + -0x4000; - field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed; - - setSingleAnimeBase(ANM_ATN_COW); - field_0x300c = 0; - - fopAc_ac_c* goat_p = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGoat, NULL); - if (goat_p != NULL) { - field_0x280c.setData(goat_p); - } - - field_0x300e = 0; - deleteEquipItem(FALSE, FALSE); - return 1; -} - -/* 800E9434-800E9894 0E3D74 0460+00 1/0 0/0 0/0 .text procGoatMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procGoatMove() { - nofralloc -#include "asm/d/a/d_a_alink/procGoatMove__9daAlink_cFv.s" -} -#pragma pop - -/* 800E9894-800E9BD0 0E41D4 033C+00 3/3 0/0 0/0 .text procGoatCatchInit__9daAlink_cFP10fopAc_ac_cf - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procGoatCatchInit(fopAc_ac_c* param_0, f32 param_1) { - nofralloc -#include "asm/d/a/d_a_alink/procGoatCatchInit__9daAlink_cFP10fopAc_ac_cf.s" -} -#pragma pop - -/* 800E9BD0-800EA2A8 0E4510 06D8+00 1/0 0/0 0/0 .text procGoatCatch__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procGoatCatch() { - nofralloc -#include "asm/d/a/d_a_alink/procGoatCatch__9daAlink_cFv.s" -} -#pragma pop - -/* 800EA2A8-800EA3AC 0E4BE8 0104+00 2/2 0/0 0/0 .text procGoatStrokeInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procGoatStrokeInit() { - nofralloc -#include "asm/d/a/d_a_alink/procGoatStrokeInit__9daAlink_cFv.s" -} -#pragma pop - -/* 800EA3AC-800EA3F4 0E4CEC 0048+00 1/0 0/0 0/0 .text procGoatStroke__9daAlink_cFv */ -int daAlink_c::procGoatStroke() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { - checkNextAction(0); - } - - return 1; -} - -/* 800EA3F4-800EA4CC 0E4D34 00D8+00 2/2 0/0 0/0 .text procGoronMoveInit__9daAlink_cFv */ -int daAlink_c::procGoronMoveInit() { - if (mEquipItem != NO_ITEM) { - return procPreActionUnequipInit(PROC_GORON_MOVE, NULL); - } - - if (!commonProcInitNotSameProc(PROC_GORON_MOVE)) { - return 0; - } - - mCargoCarryAcKeep.setActor(); - - if (mCargoCarryAcKeep.getActor() == NULL) { - offGoronSideMove(); - return 0; - } - - mNormalSpeed = FLOAT_LABEL(lit_6108); - field_0x2f98 = 3; - current.angle.y = shape_angle.y + -0x4000; - field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed; - setSingleAnimeBase(ANM_ATN_RIGHT); - field_0x300c = 1; - field_0x300e = 0; - return 1; -} - -/* 800EA4CC-800EA844 0E4E0C 0378+00 1/0 0/0 0/0 .text procGoronMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procGoronMove() { - nofralloc -#include "asm/d/a/d_a_alink/procGoronMove__9daAlink_cFv.s" -} -#pragma pop - #include "d/a/d_a_alink_sumou.inc" #include "d/a/d_a_alink_horse.inc" @@ -18551,1881 +18406,14 @@ asm int daAlink_c::procGoronMove() { #include "d/a/d_a_alink_demo.inc" -/* 80120440-80120474 11AD80 0034+00 1/0 0/0 0/0 .text commonWaitTurnInit__9daAlink_cFv */ -void daAlink_c::commonWaitTurnInit() { - if (i_checkWolf()) { - procWolfWaitTurnInit(); - } else { - procWaitTurnInit(); - } -} - -/* 80120474-80120500 11ADB4 008C+00 2/1 0/0 0/0 .text commonGrabPutInit__9daAlink_cFv */ -int daAlink_c::commonGrabPutInit() { - if (mGrabItemAcKeep.getActor() == NULL) { - if (mProcID != PROC_GRAB_STAND && - (mProcID != PROC_WOLF_GRAB_PUT || !(mUnderFrameCtrl[0].getFrame() < field_0x3478))) - { - dComIfGp_evmng_cutEnd(field_0x3184); - return 1; - } - } - - if (i_checkWolf()) { - return procWolfGrabPutInit(); - } - - return procGrabPutInit(); -} - -/* 80120500-80120534 11AE40 0034+00 3/3 0/0 0/0 .text commonLargeDamageUpInit__9daAlink_cFiiss */ -void daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 param_3) { - if (i_checkWolf()) { - procWolfLargeDamageUpInit(param_0, param_1, param_2, param_3); - } else { - procLargeDamageUpInit(param_0, param_1, param_2, param_3); - } -} - -/* 80120534-80120580 11AE74 004C+00 4/4 0/0 0/0 .text commonFallInit__9daAlink_cFi */ -void daAlink_c::commonFallInit(int param_0) { - if (i_checkWolf()) { - procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.field_0x54); - } else { - procFallInit(param_0, daAlinkHIO_autoJump_c0::m.mFallInterpolation); - } -} - #include "d/a/d_a_alink_effect.inc" #include "d/a/d_a_alink_wolf.inc" -/* 8013FF28-8013FF90 13A868 0068+00 2/2 0/0 0/0 .text setArcName__9daAlink_cFi */ -void daAlink_c::setArcName(int isWolf) { - if (isWolf) { - mArcName = l_wArcName; - return; - } - - if (checkCasualWearFlg()) { - mArcName = l_bArcName; - return; - } - - if (checkZoraWearFlg()) { - mArcName = l_zArcName; - return; - } - - if (checkMagicArmorWearFlg()) { - mArcName = l_mArcName; - return; - } - - mArcName = l_kArcName; -} - -inline bool checkCarvingWoodShieldEquip() { - return dComIfGs_getSelectEquipShield() == WOOD_SHIELD; -} - -inline bool checkShopWoodShieldEquip() { - return dComIfGs_getSelectEquipShield() == SHIELD; -} - -/* 8013FF90-8013FFD8 13A8D0 0048+00 2/2 0/0 0/0 .text setShieldArcName__9daAlink_cFv */ -void daAlink_c::setShieldArcName() { - if (checkCarvingWoodShieldEquip() || !i_checkShieldGet()) { - mShieldArcName = l_cWShdArcName; - return; - } - - if (checkShopWoodShieldEquip()) { - mShieldArcName = l_sWShdArcName; - return; - } - - mShieldArcName = l_hyShdArcName; -} - -/* 8013FFD8-80140038 13A918 0060+00 1/1 0/0 0/0 .text setOriginalHeap__9daAlink_cFPP10JKRExpHeapUl - */ -void daAlink_c::setOriginalHeap(JKRExpHeap** p_heap, u32 param_1) { - if (*p_heap == NULL) { - *p_heap = - JKRExpHeap::create((param_1 + 0xF & 0xFFFFFFF0) + 0xA0, mDoExt_getGameHeap(), true); - } -} - -/* 80140038-80140064 13A978 002C+00 1/0 0/0 0/0 .text setClothesChange__9daAlink_cFi */ -void daAlink_c::setClothesChange(int param_0) { - if (i_checkWolf()) { - return; - } - - mClothesChangeWaitTimer = 4; - if (param_0 == 0) { - return; - } - - i_onNoResetFlg2(FLG2_UNK_200000); -} - -/* 80140064-80140070 13A9A4 000C+00 0/0 1/1 0/0 .text setShieldChange__9daAlink_cFv */ -void daAlink_c::setShieldChange() { - mShieldChangeWaitTimer = 4; -} - -/* 80140070-801401F8 13A9B0 0188+00 3/3 0/0 0/0 .text loadModelDVD__9daAlink_cFv */ -int daAlink_c::loadModelDVD() { - if (mClothesChangeWaitTimer != 0) { - mClothesChangeWaitTimer--; - - if (mClothesChangeWaitTimer == 2) { - mEyeHL1.remove(); - mEyeHL2.remove(); - field_0x79c = NULL; - mpWlMidnaHatModel = NULL; - field_0x7a4 = NULL; - mpWlMidnaHairModel = NULL; - - if (!i_checkNoResetFlg2(FLG2_UNK_280000)) { - dComIfG_resDelete(&mPhaseReq, mArcName); - cPhs_Reset(&mPhaseReq); - field_0x0638->freeAll(); - - if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_METAMORPHOSE_ONLY) { - setArcName(!i_checkWolf()); - } else { - setArcName(i_checkWolf()); - } - } - } else if (mClothesChangeWaitTimer == 1) { - if (i_checkNoResetFlg2(FLG2_UNK_280000)) { - mClothesChangeWaitTimer = 0; - changeLink(1); - } else { - if (dComIfG_resLoad(&mPhaseReq, mArcName, field_0x0638) == cPhs_COMPLEATE_e) { - mClothesChangeWaitTimer = 0; - - if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_METAMORPHOSE_ONLY) { - if (i_checkWolf()) { - changeLink(0); - } else { - changeWolf(); - } - } else { - changeLink(1); - } - - return 1; - } - mClothesChangeWaitTimer = 2; - } - } - } else { - return 1; - } - - return 0; -} - -/* 801401F8-80140274 13AB38 007C+00 2/2 0/0 0/0 .text setShieldModel__9daAlink_cFv */ -void daAlink_c::setShieldModel() { - JKRHeap* heap = mAnmHeap4.setAnimeHeap(); - mShieldModel = initModel((J3DModelData*)dComIfG_getObjectRes(mShieldArcName, 3), 0); - - mDoExt_setCurrentHeap(heap); -} - -/* 80140274-80140338 13ABB4 00C4+00 2/2 0/0 0/0 .text loadShieldModelDVD__9daAlink_cFv */ -int daAlink_c::loadShieldModelDVD() { - if (mShieldChangeWaitTimer != 0) { - mShieldChangeWaitTimer--; - - if (mShieldChangeWaitTimer == 2) { - mShieldModel = NULL; - dComIfG_resDelete(&mShieldPhaseReq, mShieldArcName); - cPhs_Reset(&mShieldPhaseReq); - field_0x0648->freeAll(); - setShieldArcName(); - } else if (mShieldChangeWaitTimer == 1) { - if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, field_0x0648) == cPhs_COMPLEATE_e) - { - mShieldChangeWaitTimer = 0; - setShieldModel(); - } else { - mShieldChangeWaitTimer = 2; - } - } - } else { - return 1; - } - - return 0; -} - -/* 80140338-80140550 13AC78 0218+00 3/3 0/0 0/0 .text changeModelDataDirect__9daAlink_cFi - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::changeModelDataDirect(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/changeModelDataDirect__9daAlink_cFi.s" -} -#pragma pop - -/* 80140550-801406A8 13AE90 0158+00 3/3 0/0 0/0 .text changeModelDataDirectWolf__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::changeModelDataDirectWolf(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/changeModelDataDirectWolf__9daAlink_cFi.s" -} -#pragma pop - #include "d/a/d_a_alink_swindow.inc" #include "d/a/d_a_alink_HIO.inc" -/* 80140C80-80140CDC 13B5C0 005C+00 1/0 0/0 0/0 .text __dt__8dEyeHL_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dEyeHL_c::~dEyeHL_c() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__8dEyeHL_cFv.s" -} -#pragma pop - -/* 80140CDC-80140D24 13B61C 0048+00 0/0 1/0 0/0 .text __dt__18daPy_sightPacket_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daPy_sightPacket_c::~daPy_sightPacket_c() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__18daPy_sightPacket_cFv.s" -} -#pragma pop - -/* 80140D24-80140D80 13B664 005C+00 3/2 0/0 0/0 .text __dt__16daPy_frameCtrl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm daPy_frameCtrl_c::~daPy_frameCtrl_c() { -extern "C" asm void __dt__16daPy_frameCtrl_cFv() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__16daPy_frameCtrl_cFv.s" -} -#pragma pop - -/* 80140D80-80140DCC 13B6C0 004C+00 1/1 0/0 0/0 .text __ct__16daPy_frameCtrl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm daPy_frameCtrl_c::daPy_frameCtrl_c() { -extern "C" asm void __ct__16daPy_frameCtrl_cFv() { - nofralloc -#include "asm/d/a/d_a_alink/__ct__16daPy_frameCtrl_cFv.s" -} -#pragma pop - -/* 80140DCC-80140DF0 13B70C 0024+00 1/1 0/0 0/0 .text __defctor__14daPy_anmHeap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_anmHeap_c::__defctor() { - nofralloc -#include "asm/d/a/d_a_alink/__defctor__14daPy_anmHeap_cFv.s" -} -#pragma pop - -/* 80140DF0-80140E2C 13B730 003C+00 2/2 0/0 0/0 .text __dt__19mDoExt_AnmRatioPackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm mDoExt_AnmRatioPack::~mDoExt_AnmRatioPack() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__19mDoExt_AnmRatioPackFv.s" -} -#pragma pop - -/* 80140E2C-80140E40 13B76C 0014+00 1/1 0/0 0/0 .text __ct__19mDoExt_AnmRatioPackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm mDoExt_AnmRatioPack::mDoExt_AnmRatioPack() { - nofralloc -#include "asm/d/a/d_a_alink/__ct__19mDoExt_AnmRatioPackFv.s" -} -#pragma pop - -/* 80140E40-80140EB8 13B780 0078+00 4/3 0/0 0/0 .text __dt__16dBgS_LinkRoofChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dBgS_LinkRoofChk::~dBgS_LinkRoofChk() { -extern "C" asm void __dt__16dBgS_LinkRoofChkFv() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__16dBgS_LinkRoofChkFv.s" -} -#pragma pop - -/* 80140EB8-80140F30 13B7F8 0078+00 4/3 0/0 0/0 .text __dt__15dBgS_LinkGndChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dBgS_LinkGndChk::~dBgS_LinkGndChk() { -extern "C" asm void __dt__15dBgS_LinkGndChkFv() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__15dBgS_LinkGndChkFv.s" -} -#pragma pop - -/* 80140F30-80140FA0 13B870 0070+00 3/2 0/0 0/0 .text __dt__13dBgS_LinkAcchFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dBgS_LinkAcch::~dBgS_LinkAcch() { -extern "C" asm void __dt__13dBgS_LinkAcchFv() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__13dBgS_LinkAcchFv.s" -} -#pragma pop - -/* 80140FA0-80141020 13B8E0 0080+00 1/1 0/0 0/0 .text __ct__8dCcD_CpsFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dCcD_Cps::dCcD_Cps() { -extern "C" asm void __ct__8dCcD_CpsFv() { - nofralloc -#include "asm/d/a/d_a_alink/__ct__8dCcD_CpsFv.s" -} -#pragma pop - -/* 80141020-801410A4 13B960 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dCcD_Cyl::dCcD_Cyl() { -extern "C" asm void __ct__8dCcD_CylFv() { - nofralloc -#include "asm/d/a/d_a_alink/__ct__8dCcD_CylFv.s" -} -#pragma pop - -/* 801410A4-801410EC 13B9E4 0048+00 0/0 1/0 0/0 .text __dt__9cCcD_SttsFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm cCcD_Stts::~cCcD_Stts() { -extern "C" asm void __dt__9cCcD_SttsFv() { - nofralloc -#include "asm/d/a/d_a_alink/__dt__9cCcD_SttsFv.s" -} -#pragma pop - -/* 801410EC-8014111C 13BA2C 0030+00 1/1 0/0 0/0 .text __ct__16daPy_actorKeep_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void __ct__16daPy_actorKeep_cFv() { - nofralloc -#include "asm/d/a/d_a_alink/__ct__16daPy_actorKeep_cFv.s" -} -#pragma pop - -/* 8014111C-8014112C 13BA5C 0010+00 1/1 0/0 0/0 .text - * onNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2 */ -void daPy_py_c::onNoResetFlg2(daPy_FLG2 pFlag) { - mNoResetFlg2 |= pFlag; -} - -/* 8014112C-8014113C 13BA6C 0010+00 1/1 0/0 0/0 .text - * offNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0 */ -// weird regalloc -#ifdef NONMATCHING -void daPy_py_c::offNoResetFlg0(daPy_FLG0 pFlag) { - mNoResetFlg0 &= ~pFlag; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::offNoResetFlg0(daPy_py_c::daPy_FLG0 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/offNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0.s" -} -#pragma pop -#endif - -/* 8014113C-80141190 13BA7C 0054+00 1/1 0/0 0/0 .text mDoAud_seStartLevel__FUlPC3VecUlSc - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void mDoAud_seStartLevel(u32 param_0, Vec const* param_1, u32 param_2, s8 param_3) { - nofralloc -#include "asm/d/a/d_a_alink/mDoAud_seStartLevel__FUlPC3VecUlSc.s" -} -#pragma pop - -/* 80141190-8014119C 13BAD0 000C+00 1/1 0/0 0/0 .text - * checkEndResetFlg2__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG2 */ -int daPy_py_c::checkEndResetFlg2(daPy_ERFLG2 pFlag) const { - return mEndResetFlg2 & pFlag; -} - -/* 8014119C-801411B0 13BADC 0014+00 1/1 0/0 0/0 .text dComIfGp_setBottleStatus__FUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dComIfGp_setBottleStatus(u8 param_0, u8 param_1) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_setBottleStatus__FUcUc.s" -} -#pragma pop - -/* 801411B0-801411D4 13BAF0 0024+00 1/1 0/0 0/0 .text getSumouMode__9daPy_py_cCFv */ -bool daPy_py_c::getSumouMode() const { - return getSumouCameraMode(); -} - -/* 801411D4-801411E0 13BB14 000C+00 1/1 0/0 0/0 .text - * checkNoResetFlg3__9daPy_py_cCFQ29daPy_py_c9daPy_FLG3 */ -int daPy_py_c::checkNoResetFlg3(daPy_FLG3 pFlag) const { - return mNoResetFlg3 & pFlag; -} - -/* 801411E0-801411F0 13BB20 0010+00 1/1 0/0 0/0 .text onCondition__11dEvt_info_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvt_info_c::onCondition(u16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/onCondition__11dEvt_info_cFUs.s" -} -#pragma pop - -/* 801411F0-80141200 13BB30 0010+00 1/1 4/4 0/0 .text __ct__8cM3dGPlaFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm cM3dGPla::cM3dGPla() { -extern "C" asm void __ct__8cM3dGPlaFv() { - nofralloc -#include "asm/d/a/d_a_alink/__ct__8cM3dGPlaFv.s" -} -#pragma pop - -/* 80141200-80141210 13BB40 0010+00 1/1 0/0 0/0 .text offCondition__11dEvt_info_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvt_info_c::offCondition(u16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/offCondition__11dEvt_info_cFUs.s" -} -#pragma pop - -/* 80141210-80141230 13BB50 0020+00 1/1 0/0 0/0 .text checkShieldGet__9daPy_py_cFv */ -BOOL daPy_py_c::checkShieldGet() { - return dComIfGs_getSelectEquipShield() != NO_ITEM; -} - -/* 80141230-80141264 13BB70 0034+00 1/1 0/0 0/0 .text fopAcM_onSwitch__FPC10fopAc_ac_ci - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fopAcM_onSwitch(fopAc_ac_c const* param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_alink/fopAcM_onSwitch__FPC10fopAc_ac_ci.s" -} -#pragma pop - -/* 80141264-80141294 13BBA4 0030+00 1/1 0/0 0/0 .text dComIfGs_isItemFirstBit__FUc */ -int dComIfGs_isItemFirstBit(u8 i_no) { - return g_dComIfG_gameInfo.info.getPlayer().getGetItem().isFirstBit(i_no); -} - -/* 80141294-801412A0 13BBD4 000C+00 1/1 0/0 0/0 .text - * dStage_stagInfo_GetSaveTbl__FP21stage_stag_info_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/dStage_stagInfo_GetSaveTbl__FP21stage_stag_info_class.s" -} -#pragma pop - -/* 801412A0-801412B0 13BBE0 0010+00 1/1 0/0 0/0 .text dComIfGp_getStage__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm dStage_stageDt_c* dComIfGp_getStage() { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_getStage__Fv.s" -} -#pragma pop - -/* 801412B0-801412BC 13BBF0 000C+00 1/1 0/0 0/0 .text checkEquipHeavyBoots__9daPy_py_cCFv - */ -u32 daPy_py_c::checkEquipHeavyBoots() const { - return i_checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); -} - -/* 801412BC-801412C4 13BBFC 0008+00 1/1 4/4 0/0 .text fopAcM_GetName__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm void fopAcM_GetName(void* param_0) { -extern "C" asm void fopAcM_GetName__FPv() { - nofralloc -#include "asm/d/a/d_a_alink/fopAcM_GetName__FPv.s" -} -#pragma pop - -/* 801412C4-801412D4 13BC04 0010+00 1/1 0/0 0/0 .text - * onNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0 */ -void daPy_py_c::onNoResetFlg0(daPy_FLG0 pFlag) { - mNoResetFlg0 |= pFlag; -} - -/* 801412D4-801412F8 13BC14 0024+00 1/1 0/0 0/0 .text isOrderOK__14dEvt_control_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL dEvt_control_c::isOrderOK() { - nofralloc -#include "asm/d/a/d_a_alink/isOrderOK__14dEvt_control_cFv.s" -} -#pragma pop - -/* 801412F8-80141308 13BC38 0010+00 1/1 0/0 0/0 .text dComIfGp_getEvent__Fv */ -static dEvt_control_c& dComIfGp_getEvent() { - return g_dComIfG_gameInfo.play.getEvent(); -} - -/* 80141308-80141324 13BC48 001C+00 1/1 0/0 0/0 .text dComIfGp_checkPlayerStatus0__FiUl - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm u32 dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_checkPlayerStatus0__FiUl.s" -} -#pragma pop - -/* 80141324-80141340 13BC64 001C+00 1/1 0/0 0/0 .text dComIfGp_checkPlayerStatus1__FiUl - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm u32 dComIfGp_checkPlayerStatus1(int param_0, u32 param_1) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_checkPlayerStatus1__FiUl.s" -} -#pragma pop - -/* 80141340-8014134C 13BC80 000C+00 1/1 0/0 0/0 .text - * checkEndResetFlg1__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG1 */ -u32 daPy_py_c::checkEndResetFlg1(daPy_ERFLG1 pFlag) const { - return mEndResetFlg1 & pFlag; -} - -/* 8014134C-8014135C 13BC8C 0010+00 1/1 0/0 0/0 .text dComIfGp_getEventManager__Fv */ -static dEvent_manager_c& dComIfGp_getEventManager() { - return g_dComIfG_gameInfo.play.getEvtManager(); -} - -/* 8014135C-8014136C 13BC9C 0010+00 1/1 0/0 0/0 .text - * offNoResetFlg1__9daPy_py_cFQ29daPy_py_c9daPy_FLG1 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::offNoResetFlg1(daPy_py_c::daPy_FLG1 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/offNoResetFlg1__9daPy_py_cFQ29daPy_py_c9daPy_FLG1.s" -} -#pragma pop - -/* 8014136C-8014137C 13BCAC 0010+00 1/1 0/0 0/0 .text - * offNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2 */ -// regalloc -#ifdef NONMATCHING -void daPy_py_c::offNoResetFlg2(daPy_py_c::daPy_FLG2 param_0) { - mNoResetFlg2 &= ~param_0; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::offNoResetFlg2(daPy_py_c::daPy_FLG2 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/offNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2.s" -} -#pragma pop -#endif - -/* 8014137C-80141388 13BCBC 000C+00 1/1 0/0 0/0 .text setSpecialDemoType__11daPy_demo_cFv - */ -void daPy_demo_c::setSpecialDemoType() { - setDemoType(5); -} - -/* 80141388-8014139C 13BCC8 0014+00 1/1 0/0 0/0 .text checkCommandCatch__11dEvt_info_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dEvt_info_c::checkCommandCatch() { - nofralloc -#include "asm/d/a/d_a_alink/checkCommandCatch__11dEvt_info_cFv.s" -} -#pragma pop - -/* 8014139C-801413CC 13BCDC 0030+00 1/1 1/1 0/0 .text dComIfGs_isEventBit__FUs */ -BOOL dComIfGs_isEventBit(u16 id) { - return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); -} - -/* 801413CC-801413D8 13BD0C 000C+00 1/1 0/0 0/0 .text checkWolf__9daPy_py_cCFv */ -u32 daPy_py_c::checkWolf() const { - return i_checkNoResetFlg1(FLG1_IS_WOLF); -} - -/* 801413D8-801413F8 13BD18 0020+00 1/1 0/0 0/0 .text checkSwordGet__9daPy_py_cFv */ -BOOL daPy_py_c::checkSwordGet() { - return dComIfGs_getSelectEquipSword() != 0xFF; -} - -/* 801413F8-80141404 13BD38 000C+00 1/1 0/0 0/0 .text - * checkResetFlg0__9daPy_py_cCFQ29daPy_py_c10daPy_RFLG0 */ -u32 daPy_py_c::checkResetFlg0(daPy_RFLG0 pFlag) const { - return mResetFlg0 & pFlag; -} - -/* 80141404-80141410 13BD44 000C+00 1/1 0/0 0/0 .text ChkGroundHit__9dBgS_AcchCFv */ -bool dBgS_Acch::ChkGroundHit() const { - return m_flags & GROUND_HIT; -} - -/* 80141410-8014141C 13BD50 000C+00 1/1 0/0 0/0 .text - * checkNoResetFlg0__9daPy_py_cCFQ29daPy_py_c9daPy_FLG0 */ -u32 daPy_py_c::checkNoResetFlg0(daPy_FLG0 pFlag) const { - return mNoResetFlg0 & pFlag; -} - -/* 8014141C-80141438 13BD5C 001C+00 1/1 0/0 0/0 .text dComIfGp_getPlayerCameraID__Fi */ -#ifdef NONMATCHING -static s32 dComIfGp_getPlayerCameraID(int i) { - return g_dComIfG_gameInfo.play.getPlayerCameraID(i); -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s8 dComIfGp_getPlayerCameraID(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_getPlayerCameraID__Fi.s" -} -#pragma pop -#endif - -/* 80141438-80141450 13BD78 0018+00 1/1 0/0 0/0 .text dComIfGp_event_chkEventFlag__FUs */ -static u16 dComIfGp_event_chkEventFlag(u16 flag) { - return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag); -} - -/* 80141450-80141464 13BD90 0014+00 1/1 0/0 0/0 .text checkCommandDoor__11dEvt_info_cFv - */ -BOOL dEvt_info_c::checkCommandDoor() { - return mCommand == 3; -} - -/* 80141464-801414A4 13BDA4 0040+00 1/1 0/0 0/0 .text - * dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci */ -static s32 dComIfGp_evmng_getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) { - return dComIfGp_getPEvtManager()->getMyStaffId(param_0, param_1, param_2); -} - -/* 801414A4-801414C0 13BDE4 001C+00 1/1 0/0 0/0 .text dComIfGp_event_runCheck__Fv */ -static BOOL dComIfGp_event_runCheck() { - return g_dComIfG_gameInfo.play.getEvent().runCheck(); -} - -/* 801414C0-801414CC 13BE00 000C+00 1/1 0/0 0/0 .text - * checkNoResetFlg2__9daPy_py_cCFQ29daPy_py_c9daPy_FLG2 */ -u32 daPy_py_c::checkNoResetFlg2(daPy_FLG2 pFlag) const { - return mNoResetFlg2 & pFlag; -} - -/* 801414CC-801414D8 13BE0C 000C+00 1/1 2/2 0/0 .text checkMagneBootsOn__9daPy_py_cCFv */ -u32 daPy_py_c::checkMagneBootsOn() const { - return i_checkNoResetFlg0(FLG0_MAGNE_BOOTS_ON); -} - -/* 801414D8-801414E8 13BE18 0010+00 1/1 2/2 0/0 .text dComIfGp_getHorseActor__Fv */ -daHorse_c* dComIfGp_getHorseActor() { - return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1); -} - -/* 801414E8-801414F4 13BE28 000C+00 1/1 0/0 0/0 .text checkBoarSingleBattle__9daPy_py_cCFv */ -u32 daPy_py_c::checkBoarSingleBattle() const { - return i_checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); -} - -/* 801414F4-80141500 13BE34 000C+00 1/1 0/0 0/0 .text - * checkEndResetFlg0__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG0 */ -u32 daPy_py_c::checkEndResetFlg0(daPy_ERFLG0 pFlag) const { - return mEndResetFlg0 & pFlag; -} - -/* 80141500-80141508 13BE40 0008+00 1/0 0/0 0/0 .text getMidnaAtnPos__9daPy_py_cCFv */ -extern "C" bool getMidnaAtnPos__9daPy_py_cCFv() { - // bool daPy_py_c::getMidnaAtnPos() const { - return false; -} - -/* 80141508-8014150C 13BE48 0004+00 1/0 0/0 0/0 .text setMidnaMsgNum__9daPy_py_cFP10fopAc_ac_cUs - */ -void daPy_py_c::setMidnaMsgNum(fopAc_ac_c* param_0, u16 param_1) { - /* empty function */ -} - -/* 8014150C-80141514 13BE4C 0008+00 1/0 0/0 0/0 .text getModelMtx__9daPy_py_cFv */ -MtxP daPy_py_c::getModelMtx() { - return mCullMtx; -} - -/* 80141514-8014151C 13BE54 0008+00 1/0 0/0 0/0 .text getInvMtx__9daPy_py_cFv */ -MtxP daPy_py_c::getInvMtx() { - return mCullMtx; -} - -/* 8014151C-80141524 13BE5C 0008+00 1/0 0/0 0/0 .text getShadowTalkAtnPos__9daPy_py_cFv - */ -cXyz* daPy_py_c::getShadowTalkAtnPos() { - return ¤t.pos; -} - -/* 80141524-8014152C 13BE64 0008+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daPy_py_cFv */ -MtxP daPy_py_c::getLeftItemMatrix() { - return mCullMtx; -} - -/* 8014152C-80141534 13BE6C 0008+00 1/0 0/0 0/0 .text getRightItemMatrix__9daPy_py_cFv */ -MtxP daPy_py_c::getRightItemMatrix() { - return mCullMtx; -} - -/* 80141534-8014153C 13BE74 0008+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daPy_py_cFv */ -MtxP daPy_py_c::getLeftHandMatrix() { - return mCullMtx; -} - -/* 8014153C-80141544 13BE7C 0008+00 1/0 0/0 0/0 .text getRightHandMatrix__9daPy_py_cFv */ -MtxP daPy_py_c::getRightHandMatrix() { - return mCullMtx; -} - -/* 80141544-8014154C 13BE84 0008+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daPy_py_cFv */ -MtxP daPy_py_c::getLinkBackBone1Matrix() { - return mCullMtx; -} - -/* 8014154C-80141554 13BE8C 0008+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daPy_py_cFv */ -MtxP daPy_py_c::getWolfMouthMatrix() { - return mCullMtx; -} - -/* 80141554-8014155C 13BE94 0008+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daPy_py_cFv */ -MtxP daPy_py_c::getWolfBackbone2Matrix() { - return mCullMtx; -} - -/* 8014155C-80141564 13BE9C 0008+00 1/0 0/0 0/0 .text getBottleMtx__9daPy_py_cFv */ -MtxP daPy_py_c::getBottleMtx() { - return NULL; -} - -/* 80141564-8014156C 13BEA4 0008+00 1/0 0/0 0/0 .text checkPlayerGuard__9daPy_py_cCFv */ -BOOL daPy_py_c::checkPlayerGuard() const { - return false; -} - -/* 8014156C-80141574 13BEAC 0008+00 1/0 0/0 0/0 .text checkAutoJump__9daPy_py_cCFv */ -BOOL daPy_py_c::checkAutoJump() const { - return false; -} - -/* 80141574-8014157C 13BEB4 0008+00 1/0 0/0 0/0 .text checkSideStep__9daPy_py_cCFv */ -bool daPy_py_c::checkSideStep() const { - return false; -} - -/* 8014157C-80141584 13BEBC 0008+00 1/0 0/0 0/0 .text checkWolfTriggerJump__9daPy_py_cCFv - */ -bool daPy_py_c::checkWolfTriggerJump() const { - return false; -} - -/* 80141584-8014158C 13BEC4 0008+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkGuardBreakMode() const { - return false; -} - -/* 8014158C-80141594 13BECC 0008+00 1/0 0/0 0/0 .text checkLv3Slide__9daPy_py_cCFv */ -bool daPy_py_c::checkLv3Slide() const { - return false; -} - -/* 80141594-8014159C 13BED4 0008+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfHowlDemoMode() const { - return false; -} - -/* 8014159C-801415A4 13BEDC 0008+00 1/0 0/0 0/0 .text checkChainBlockPushPull__9daPy_py_cFv */ -bool daPy_py_c::checkChainBlockPushPull() { - return false; -} - -/* 801415A4-801415AC 13BEE4 0008+00 1/0 0/0 0/0 .text checkElecDamage__9daPy_py_cCFv */ -BOOL daPy_py_c::checkElecDamage() const { - return false; -} - -/* 801415AC-801415B4 13BEEC 0008+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daPy_py_cCFv */ -BOOL daPy_py_c::checkEmptyBottleSwing() const { - return false; -} - -/* 801415B4-801415BC 13BEF4 0008+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkBottleSwingMode() const { - return false; -} - -/* 801415BC-801415C4 13BEFC 0008+00 1/0 0/0 0/0 .text checkHawkWait__9daPy_py_cCFv */ -BOOL daPy_py_c::checkHawkWait() const { - return false; -} - -/* 801415C4-801415CC 13BF04 0008+00 1/0 0/0 0/0 .text checkGoatThrow__9daPy_py_cCFv */ -BOOL daPy_py_c::checkGoatThrow() const { - return false; -} - -/* 801415CC-801415D4 13BF0C 0008+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkGoatThrowAfter() const { - return false; -} - -/* 801415D4-801415DC 13BF14 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkWolfTagLockJump() const { - return false; -} - -/* 801415DC-801415E4 13BF1C 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfTagLockJumpLand() const { - return false; -} - -/* 801415E4-801415EC 13BF24 0008+00 1/0 0/0 0/0 .text checkWolfRope__9daPy_py_cFv */ -BOOL daPy_py_c::checkWolfRope() { - return false; -} - -/* 801415EC-801415F4 13BF2C 0008+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfRopeHang() const { - return false; -} - -/* 801415F4-801415FC 13BF34 0008+00 1/0 0/0 0/0 .text checkRollJump__9daPy_py_cCFv */ -BOOL daPy_py_c::checkRollJump() const { - return false; -} - -/* 801415FC-80141604 13BF3C 0008+00 1/0 0/0 0/0 .text checkGoronRideWait__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkGoronRideWait() const { - return false; -} - -/* 80141604-8014160C 13BF44 0008+00 1/0 0/0 0/0 .text checkWolfChain__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfChain() const { - return false; -} - -/* 8014160C-80141614 13BF4C 0008+00 1/0 0/0 0/0 .text checkWolfWait__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfWait() const { - return false; -} - -/* 80141614-8014161C 13BF54 0008+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkWolfJumpAttack() const { - return false; -} - -/* 8014161C-80141624 13BF5C 0008+00 1/0 0/0 0/0 .text checkWolfRSit__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfRSit() const { - return false; -} - -/* 80141624-8014162C 13BF64 0008+00 2/0 0/0 0/0 .text checkBubbleFly__9daPy_py_cCFv */ -bool daPy_py_c::checkBubbleFly() const { - return false; -} - -/* 8014162C-80141634 13BF6C 0008+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkBottleDrinkEnd() const { - return false; -} - -/* 80141634-8014163C 13BF74 0008+00 1/0 0/0 0/0 .text checkWolfDig__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfDig() const { - return false; -} - -/* 8014163C-80141644 13BF7C 0008+00 1/0 0/0 0/0 .text checkCutCharge__9daPy_py_cCFv */ -BOOL daPy_py_c::checkCutCharge() const { - return false; -} - -/* 80141644-8014164C 13BF84 0008+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daPy_py_cCFv - */ -BOOL daPy_py_c::checkCutTurnCharge() const { - return false; -} - -/* 8014164C-80141654 13BF8C 0008+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daPy_py_cCFv */ -BOOL daPy_py_c::checkCutLargeJumpCharge() const { - return false; -} - -/* 80141654-8014165C 13BF94 0008+00 2/0 0/0 0/0 .text getBokoFlamePos__9daPy_py_cFP4cXyz - */ -bool daPy_py_c::getBokoFlamePos(cXyz* param_0) { - return false; -} - -/* 8014165C-80141664 13BF9C 0008+00 1/0 0/0 0/0 .text checkComboCutTurn__9daPy_py_cCFv */ -BOOL daPy_py_c::checkComboCutTurn() const { - return false; -} - -/* 80141664-8014166C 13BFA4 0008+00 1/0 0/0 0/0 .text checkClimbMove__9daPy_py_cCFv */ -BOOL daPy_py_c::checkClimbMove() const { - return false; -} - -/* 8014166C-80141674 13BFAC 0008+00 1/0 0/0 0/0 .text checkGrassWhistle__9daPy_py_cCFv */ -BOOL daPy_py_c::checkGrassWhistle() const { - return false; -} - -/* 80141674-8014167C 13BFB4 0008+00 1/0 0/0 0/0 .text checkBoarRun__9daPy_py_cCFv */ -BOOL daPy_py_c::checkBoarRun() const { - return false; -} - -/* 8014167C-80141684 13BFBC 0008+00 2/0 0/0 0/0 .text checkFmChainPut__9daPy_py_cCFv */ -bool daPy_py_c::checkFmChainPut() const { - return false; -} - -/* 80141684-8014168C 13BFC4 0008+00 2/0 0/0 0/0 .text checkHorseElecDamage__9daPy_py_cCFv - */ -bool daPy_py_c::checkHorseElecDamage() const { - return false; -} - -/* 8014168C-80141694 13BFCC 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrameRate__9daPy_py_cCFv */ -float daPy_py_c::getBaseAnimeFrameRate() const { - return lit_6040; -} - -/* 80141694-8014169C 13BFD4 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrame__9daPy_py_cCFv */ -f32 daPy_py_c::getBaseAnimeFrame() const { - return FLOAT_LABEL(lit_6108); -} - -/* 8014169C-801416A0 13BFDC 0004+00 1/0 0/0 0/0 .text setAnimeFrame__9daPy_py_cFf */ -void daPy_py_c::setAnimeFrame(f32 param_0) { - /* empty function */ -} - -/* 801416A0-801416A8 13BFE0 0008+00 1/0 0/0 0/0 .text checkWolfLock__9daPy_py_cCFP10fopAc_ac_c */ -bool daPy_py_c::checkWolfLock(fopAc_ac_c* param_0) const { - return false; -} - -/* 801416A8-801416B0 13BFE8 0008+00 1/0 0/0 0/0 .text cancelWolfLock__9daPy_py_cFP10fopAc_ac_c */ -bool daPy_py_c::cancelWolfLock(fopAc_ac_c* param_0) { - return false; -} - -/* 801416B0-801416B8 13BFF0 0008+00 1/0 0/0 0/0 .text getItemID__9daPy_py_cCFv */ -s32 daPy_py_c::getItemID() const { - return -1; -} - -/* 801416B8-801416C0 13BFF8 0008+00 1/0 0/0 0/0 .text exchangeGrabActor__9daPy_py_cFP10fopAc_ac_c - */ -bool daPy_py_c::exchangeGrabActor(fopAc_ac_c* param_0) { - return false; -} - -/* 801416C0-801416C8 13C000 0008+00 1/0 0/0 0/0 .text setForceGrab__9daPy_py_cFP10fopAc_ac_cii */ -bool daPy_py_c::setForceGrab(fopAc_ac_c* param_0, int param_1, int param_2) { - return false; -} - -/* 801416C8-801416CC 13C008 0004+00 1/0 0/0 0/0 .text setForcePutPos__9daPy_py_cFRC4cXyz - */ -void daPy_py_c::setForcePutPos(cXyz const& param_0) { - /* empty function */ -} - -/* 801416CC-801416D4 13C00C 0008+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daPy_py_cFv */ -BOOL daPy_py_c::checkPlayerNoDraw() { - return false; -} - -/* 801416D4-801416DC 13C014 0008+00 2/0 0/0 0/0 .text checkRopeTag__9daPy_py_cFv */ -bool daPy_py_c::checkRopeTag() { - return false; -} - -/* 801416DC-801416E0 13C01C 0004+00 1/0 0/0 0/0 .text voiceStart__9daPy_py_cFUl */ -void daPy_py_c::voiceStart(u32 param_0) { - /* empty function */ -} - -/* 801416E0-801416E4 13C020 0004+00 1/0 0/0 0/0 .text seStartOnlyReverb__9daPy_py_cFUl */ -void daPy_py_c::seStartOnlyReverb(u32 param_0) { - /* empty function */ -} - -/* 801416E4-801416E8 13C024 0004+00 1/0 0/0 0/0 .text seStartOnlyReverbLevel__9daPy_py_cFUl */ -void daPy_py_c::seStartOnlyReverbLevel(u32 param_0) { - /* empty function */ -} - -/* 801416E8-801416EC 13C028 0004+00 1/0 0/0 0/0 .text setOutPower__9daPy_py_cFfsi */ -void daPy_py_c::setOutPower(f32 param_0, s16 param_1, int param_2) { - /* empty function */ -} - -/* 801416EC-801416F0 13C02C 0004+00 1/0 0/0 0/0 .text - * setGrabCollisionOffset__9daPy_py_cFffP13cBgS_PolyInfo */ -void daPy_py_c::setGrabCollisionOffset(f32 param_0, f32 param_1, cBgS_PolyInfo* param_2) { - /* empty function */ -} - -/* 801416F0-801416F4 13C030 0004+00 2/0 0/0 0/0 .text onMagneGrab__9daPy_py_cFff */ -void daPy_py_c::onMagneGrab(f32 param_0, f32 param_1) { - /* empty function */ -} - -/* 801416F4-801416FC 13C034 0008+00 1/0 0/0 0/0 .text getModelJointMtx__9daPy_py_cFUs */ -MtxP daPy_py_c::getModelJointMtx(u16 param_0) { - return NULL; -} - -/* 801416FC-80141704 13C03C 0008+00 1/0 0/0 0/0 .text getHeadMtx__9daPy_py_cFv */ -MtxP daPy_py_c::getHeadMtx() { - return NULL; -} - -/* 80141704-8014170C 13C044 0008+00 1/0 0/0 0/0 .text setHookshotCarryOffset__9daPy_py_cFUiPC4cXyz - */ -bool daPy_py_c::setHookshotCarryOffset(unsigned int param_0, cXyz const* param_1) { - return false; -} - -/* 8014170C-80141714 13C04C 0008+00 1/0 0/0 0/0 .text checkIronBallReturn__9daPy_py_cCFv - */ -bool daPy_py_c::checkIronBallReturn() const { - return false; -} - -/* 80141714-8014171C 13C054 0008+00 1/0 0/0 0/0 .text checkIronBallGroundStop__9daPy_py_cCFv */ -bool daPy_py_c::checkIronBallGroundStop() const { - return false; -} - -/* 8014171C-80141724 13C05C 0008+00 1/0 0/0 0/0 .text - * checkSingleBoarBattleSecondBowReady__9daPy_py_cCFv */ -BOOL daPy_py_c::checkSingleBoarBattleSecondBowReady() const { - return false; -} - -/* 80141724-8014172C 13C064 0008+00 2/0 0/0 0/0 .text checkPointSubWindowMode__9daPy_py_cCFv */ -bool daPy_py_c::checkPointSubWindowMode() const { - return false; -} - -/* 8014172C-80141730 13C06C 0004+00 1/0 0/0 0/0 .text setClothesChange__9daPy_py_cFi */ -void daPy_py_c::setClothesChange(int param_0) { - /* empty function */ -} - -/* 80141730-80141734 13C070 0004+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daPy_py_cFPA4_f */ -void daPy_py_c::setPlayerPosAndAngle(f32 (*param_0)[4]) { - /* empty function */ -} - -/* 80141734-80141738 13C074 0004+00 1/0 0/0 0/0 .text - * setPlayerPosAndAngle__9daPy_py_cFPC4cXyzPC5csXyz */ -void daPy_py_c::setPlayerPosAndAngle(cXyz const* param_0, csXyz const* param_1) { - /* empty function */ -} - -/* 80141738-8014173C 13C078 0004+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daPy_py_cFPC4cXyzsi - */ -void daPy_py_c::setPlayerPosAndAngle(cXyz const* param_0, s16 param_1, int param_2) { - /* empty function */ -} - -/* 8014173C-80141744 13C07C 0008+00 1/0 0/0 0/0 .text setThrowDamage__9daPy_py_cFsffiii - */ -bool daPy_py_c::setThrowDamage(s16 param_0, f32 param_1, f32 param_2, int param_3, int param_4, - int param_5) { - return false; -} - -/* 80141744-8014174C 13C084 0008+00 1/0 0/0 0/0 .text checkSetNpcTks__9daPy_py_cFP4cXyzii - */ -bool daPy_py_c::checkSetNpcTks(cXyz* param_0, int param_1, int param_2) { - return false; -} - -/* 8014174C-80141754 13C08C 0008+00 1/0 0/0 0/0 .text setRollJump__9daPy_py_cFffs */ -int daPy_py_c::setRollJump(f32 param_0, f32 param_1, s16 param_2) { - return 0; -} - -/* 80141754-80141758 13C094 0004+00 1/0 0/0 0/0 .text playerStartCollisionSE__9daPy_py_cFUlUl */ -void daPy_py_c::playerStartCollisionSE(u32 param_0, u32 param_1) { - /* empty function */ -} - -/* 80141758-8014175C 13C098 0004+00 2/0 0/0 0/0 .text changeTextureAnime__9daPy_py_cFUsUsi */ -void daPy_py_c::changeTextureAnime(u16 param_0, u16 param_1, int param_2) { - /* empty function */ -} - -/* 8014175C-80141760 13C09C 0004+00 2/0 0/0 0/0 .text cancelChangeTextureAnime__9daPy_py_cFv */ -void daPy_py_c::cancelChangeTextureAnime() { - /* empty function */ -} - -/* 80141760-80141764 13C0A0 0004+00 1/0 0/0 0/0 .text cancelDungeonWarpReadyNeck__9daPy_py_cFv */ -void daPy_py_c::cancelDungeonWarpReadyNeck() { - /* empty function */ -} - -/* 80141764-80141768 13C0A4 0004+00 1/0 0/0 0/0 .text - * onSceneChangeArea__9daPy_py_cFUcUcP10fopAc_ac_c */ -void daPy_py_c::onSceneChangeArea(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { - /* empty function */ -} - -/* 80141768-8014176C 13C0A8 0004+00 1/0 0/0 0/0 .text - * onSceneChangeAreaJump__9daPy_py_cFUcUcP10fopAc_ac_c */ -void daPy_py_c::onSceneChangeAreaJump(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { - /* empty function */ -} - -/* 8014176C-80141770 13C0AC 0004+00 1/0 0/0 0/0 .text onSceneChangeDead__9daPy_py_cFUci - */ -void daPy_py_c::onSceneChangeDead(u8 param_0, int param_1) { - /* empty function */ -} - -/* 80141770-80141778 13C0B0 0008+00 1/0 0/0 0/0 .text getSpinnerActor__9daPy_py_cFv */ -fopAc_ac_c* daPy_py_c::getSpinnerActor() { - return NULL; -} - -/* 80141778-80141780 13C0B8 0008+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daPy_py_cCFv */ -BOOL daPy_py_c::checkHorseRideNotReady() const { - return false; -} - -/* 80141780-80141788 13C0C0 0008+00 1/0 0/0 0/0 .text checkArrowChargeEnd__9daPy_py_cCFv - */ -bool daPy_py_c::checkArrowChargeEnd() const { - return false; -} - -/* 80141788-80141790 13C0C8 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daPy_py_cCFv - */ -f32 daPy_py_c::getSearchBallScale() const { - return FLOAT_LABEL(lit_6108); -} - -/* 80141790-80141798 13C0D0 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daPy_py_cFv */ -s16 daPy_py_c::checkFastShotTime() { - return 0; -} - -/* 80141798-801417A0 13C0D8 0008+00 1/0 0/0 0/0 .text checkNoEquipItem__9daPy_py_cCFv */ -bool daPy_py_c::checkNoEquipItem() const { - return true; -} - -/* 801417A0-801417A8 13C0E0 0008+00 2/0 0/0 0/0 .text checkFireMaterial__9daPy_py_cCFv */ -bool daPy_py_c::checkFireMaterial() const { - return false; -} - -/* 801417A8-801417B0 13C0E8 0008+00 1/0 0/0 0/0 .text checkKandelaarSwing__9daPy_py_cCFi - */ -bool daPy_py_c::checkKandelaarSwing(int param_0) const { - return false; -} - -/* 801417B0-801417B8 13C0F0 0008+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daPy_py_cCFv - */ -s16 daPy_py_c::getBoardCutTurnOffsetAngleY() const { - return 0; -} - -/* 801417B8-801417C0 13C0F8 0008+00 2/0 0/0 0/0 .text getMagneHitPos__9daPy_py_cFv */ -cXyz* daPy_py_c::getMagneHitPos() { - return &mSwordTopPos; -} - -/* 801417C0-801417C8 13C100 0008+00 1/0 0/0 0/0 .text getMagneBootsTopVec__9daPy_py_cFv - */ -cXyz* daPy_py_c::getMagneBootsTopVec() { - return ¤t.pos; -} - -/* 801417C8-801417D0 13C108 0008+00 1/0 0/0 0/0 .text checkUseKandelaar__9daPy_py_cFi */ -bool daPy_py_c::checkUseKandelaar(int param_0) { - return false; -} - -/* 801417D0-801417D4 13C110 0004+00 1/0 0/0 0/0 .text setDkCaught__9daPy_py_cFP10fopAc_ac_c */ -void daPy_py_c::setDkCaught(fopAc_ac_c* param_0) { - /* empty function */ -} - -/* 801417D4-801417D8 13C114 0004+00 1/0 0/0 0/0 .text onPressedDamage__9daPy_py_cFRC4cXyzs */ -void daPy_py_c::onPressedDamage(cXyz const& param_0, s16 param_1) { - /* empty function */ -} - -/* 801417D8-801417E0 13C118 0008+00 1/0 0/0 0/0 .text checkPriActorOwn__9daPy_py_cCFPC10fopAc_ac_c - */ -bool daPy_py_c::checkPriActorOwn(fopAc_ac_c const* param_0) const { - return false; -} - -/* 801417E0-801417E8 13C120 0008+00 1/0 0/0 0/0 .text - * onWolfEnemyBiteAll__9daPy_py_cFP10fopAc_ac_cQ29daPy_py_c9daPy_FLG2 */ -bool daPy_py_c::onWolfEnemyBiteAll(fopAc_ac_c* param_0, daPy_py_c::daPy_FLG2 param_1) { - return false; -} - -/* 801417E8-801417F0 13C128 0008+00 1/0 0/0 0/0 .text - * checkWolfEnemyBiteAllOwn__9daPy_py_cCFPC10fopAc_ac_c */ -bool daPy_py_c::checkWolfEnemyBiteAllOwn(fopAc_ac_c const* param_0) const { - return false; -} - -/* 801417F0-801417F4 13C130 0004+00 1/0 0/0 0/0 .text setWolfEnemyHangBiteAngle__9daPy_py_cFs */ -void daPy_py_c::setWolfEnemyHangBiteAngle(s16 param_0) { - /* empty function */ -} - -/* 801417F4-801417F8 13C134 0004+00 1/0 0/0 0/0 .text setKandelaarMtx__9daPy_py_cFPA4_fii - */ -void daPy_py_c::setKandelaarMtx(f32 (*param_0)[4], int param_1, int param_2) { - /* empty function */ -} - -/* 801417F8-80141800 13C138 0008+00 1/0 0/0 0/0 .text getStickAngleFromPlayerShape__9daPy_py_cCFPs - */ -bool daPy_py_c::getStickAngleFromPlayerShape(s16* param_0) const { - return false; -} - -/* 80141800-80141808 13C140 0008+00 1/0 0/0 0/0 .text checkSpinnerPathMove__9daPy_py_cFv - */ -bool daPy_py_c::checkSpinnerPathMove() { - return false; -} - -/* 80141808-80141810 13C148 0008+00 1/0 0/0 0/0 .text checkSpinnerTriggerAttack__9daPy_py_cFv */ -bool daPy_py_c::checkSpinnerTriggerAttack() { - return false; -} - -/* 80141810-80141814 13C150 0004+00 1/0 0/0 0/0 .text onSpinnerPathForceRemove__9daPy_py_cFv */ -void daPy_py_c::onSpinnerPathForceRemove() { - /* empty function */ -} - -/* 80141814-8014181C 13C154 0008+00 1/0 0/0 0/0 .text getIronBallBgHit__9daPy_py_cCFv */ -s16 daPy_py_c::getIronBallBgHit() const { - return 0; -} - -/* 8014181C-80141824 13C15C 0008+00 1/0 0/0 0/0 .text getIronBallCenterPos__9daPy_py_cFv - */ -cXyz* daPy_py_c::getIronBallCenterPos() { - return NULL; -} - -/* 80141824-8014182C 13C164 0008+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daPy_py_cCFv */ -bool daPy_py_c::checkCanoeFishingGetLeft() const { - return false; -} - -/* 8014182C-80141834 13C16C 0008+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daPy_py_cCFv */ -bool daPy_py_c::checkCanoeFishingGetRight() const { - return false; -} - -/* 80141834-8014183C 13C174 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daPy_py_cCFv - */ -u8 daPy_py_c::checkBeeChildDrink() const { - return false; -} - -/* 8014183C-80141840 13C17C 0004+00 1/0 0/0 0/0 .text skipPortalObjWarp__9daPy_py_cFv */ -void daPy_py_c::skipPortalObjWarp() { - /* empty function */ -} - -/* 80141840-80141848 13C180 0008+00 1/0 0/0 0/0 .text checkTreasureRupeeReturn__9daPy_py_cCFi */ -bool daPy_py_c::checkTreasureRupeeReturn(int param_0) const { - return false; -} - -/* 80141848-8014184C 13C188 0004+00 1/0 0/0 0/0 .text setSumouReady__9daPy_py_cFP10fopAc_ac_c */ -void daPy_py_c::setSumouReady(fopAc_ac_c* param_0) { - /* empty function */ -} - -/* 8014184C-80141854 13C18C 0008+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daPy_py_cFi */ -bool daPy_py_c::checkAcceptDungeonWarpAlink(int param_0) { - return false; -} - -/* 80141854-8014185C 13C194 0008+00 1/0 0/0 0/0 .text getSumouCounter__9daPy_py_cCFv */ -s16 daPy_py_c::getSumouCounter() const { - return 0; -} - -/* 8014185C-80141864 13C19C 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daPy_py_cCFv - */ -s16 daPy_py_c::checkSumouWithstand() const { - return 0; -} - -/* 80141864-80141868 13C1A4 0004+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daPy_py_cFv - */ -void daPy_py_c::cancelGoronThrowEvent() { - /* empty function */ -} - -/* 80141868-8014186C 13C1A8 0004+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daPy_py_cFi */ -void daPy_py_c::setSumouGraspCancelCount(int param_0) { - /* empty function */ -} - -/* 8014186C-80141870 13C1AC 0004+00 1/0 0/0 0/0 .text setSumouPushBackDirection__9daPy_py_cFs */ -void daPy_py_c::setSumouPushBackDirection(s16 param_0) { - /* empty function */ -} - -/* 80141870-80141874 13C1B0 0004+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daPy_py_cFv */ -void daPy_py_c::setSumouLoseHeadUp() { - /* empty function */ -} - -/* 80141874-8014187C 13C1B4 0008+00 1/0 0/0 0/0 .text getGiantPuzzleAimAngle__9daPy_py_cCFv */ -s16 daPy_py_c::getGiantPuzzleAimAngle() const { - return shape_angle.y; -} - -/* 8014187C-80141880 13C1BC 0004+00 1/0 0/0 0/0 .text setGoronSideMove__9daPy_py_cFP10fopAc_ac_c - */ -void daPy_py_c::setGoronSideMove(fopAc_ac_c* param_0) { - /* empty function */ -} - -/* 80141880-80141884 13C1C0 0004+00 1/0 0/0 0/0 .text setCargoCarry__9daPy_py_cFP10fopAc_ac_c */ -void daPy_py_c::setCargoCarry(fopAc_ac_c* param_0) { - /* empty function */ -} - -/* 80141884-8014188C 13C1C4 0008+00 2/0 0/0 0/0 .text getDpdFarFlg__9daPy_py_cCFv */ -bool daPy_py_c::getDpdFarFlg() const { - return false; -} - -/* 8014188C-80141894 13C1CC 0008+00 1/0 0/0 0/0 .text getHookshotTopPos__9daPy_py_cFv */ -cXyz* daPy_py_c::getHookshotTopPos() { - return NULL; -} - -/* 80141894-8014189C 13C1D4 0008+00 1/0 0/0 0/0 .text checkHookshotReturnMode__9daPy_py_cCFv */ -bool daPy_py_c::checkHookshotReturnMode() const { - return false; -} - -/* 8014189C-801418A4 13C1DC 0008+00 1/0 0/0 0/0 .text checkHookshotShootReturnMode__9daPy_py_cCFv - */ -bool daPy_py_c::checkHookshotShootReturnMode() const { - return false; -} - -/* 801418A4-801418AC 13C1E4 0008+00 1/0 0/0 0/0 .text checkOctaIealHang__9daPy_py_cCFv */ -bool daPy_py_c::checkOctaIealHang() const { - return false; -} - -/* 801418AC-801418B0 13C1EC 0004+00 1/0 0/0 0/0 .text cancelOctaIealHang__9daPy_py_cFv */ -void daPy_py_c::cancelOctaIealHang() { - /* empty function */ -} - -/* 801418B0-801418B4 13C1F0 0004+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daPy_py_cFv */ -void daPy_py_c::cancelDragonHangBackJump() { - /* empty function */ -} - -/* 801418B4-801418B8 13C1F4 0004+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daPy_py_cFv - */ -void daPy_py_c::setOctaIealWildHang() { - /* empty function */ -} - -/* 801418B8-801418C0 13C1F8 0008+00 1/0 0/0 0/0 .text checkDragonHangRide__9daPy_py_cCFv - */ -bool daPy_py_c::checkDragonHangRide() const { - return false; -} - -/* 801418C0-801418C4 13C200 0004+00 1/0 0/0 0/0 .text changeDragonActor__9daPy_py_cFP10fopAc_ac_c - */ -void daPy_py_c::changeDragonActor(fopAc_ac_c* param_0) { - /* empty function */ -} - -/* 801418C4-801418CC 13C204 0008+00 1/0 0/0 0/0 .text getClothesChangeWaitTimer__9daPy_py_cCFv */ -u8 daPy_py_c::getClothesChangeWaitTimer() const { - return 0; -} - -/* 801418CC-801418D4 13C20C 0008+00 1/0 0/0 0/0 .text getShieldChangeWaitTimer__9daPy_py_cCFv */ -u8 daPy_py_c::getShieldChangeWaitTimer() const { - return 0; -} - -/* 801418D4-801418DC 13C214 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daPy_py_cCFv */ -u8 daPy_py_c::getSwordChangeWaitTimer() const { - return 0; -} - -/* 801418DC-801418E4 13C21C 0008+00 1/0 0/0 0/0 .text checkMetamorphose__9daPy_py_cCFv */ -BOOL daPy_py_c::checkMetamorphose() const { - return false; -} - -/* 801418E4-801418EC 13C224 0008+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfDownAttackPullOut() const { - return false; -} - -/* 801418EC-801418F4 13C22C 0008+00 1/0 0/0 0/0 .text checkBootsOrArmorHeavy__9daPy_py_cCFv */ -BOOL daPy_py_c::checkBootsOrArmorHeavy() const { - return false; -} - -/* 801418F4-801418FC 13C234 0008+00 1/0 0/0 0/0 .text getBottleOpenAppearItem__9daPy_py_cCFv */ -s32 daPy_py_c::getBottleOpenAppearItem() const { - return -1; -} - -/* 801418FC-80141904 13C23C 0008+00 1/0 0/0 0/0 .text checkItemSwordEquip__9daPy_py_cCFv - */ -bool daPy_py_c::checkItemSwordEquip() const { - return false; -} - -/* 80141904-8014190C 13C244 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daPy_py_cCFv - */ -f32 daPy_py_c::getSinkShapeOffset() const { - return FLOAT_LABEL(lit_6108); -} - -/* 8014190C-80141914 13C24C 0008+00 1/0 0/0 0/0 .text checkSinkDead__9daPy_py_cCFv */ -BOOL daPy_py_c::checkSinkDead() const { - return false; -} - -/* 80141914-8014191C 13C254 0008+00 1/0 0/0 0/0 .text checkHorseStart__9daPy_py_cFv */ -BOOL daPy_py_c::checkHorseStart() { - return false; -} - -/* 8014191C-80141924 13C25C 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daPy_py_cFv */ -Z2WolfHowlMgr* daPy_py_c::getWolfHowlMgrP() { - return NULL; -} - -/* 80141924-8014192C 13C264 0008+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daPy_py_cCFv */ -BOOL daPy_py_c::checkWolfHowlSuccessAnime() const { - return false; -} - -/* 8014192C-80141934 13C26C 0008+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daPy_py_cFv */ -BOOL daPy_py_c::checkCopyRodTopUse() { - return false; -} - -/* 80141934-8014193C 13C274 0008+00 1/0 0/0 0/0 .text checkCopyRodEquip__9daPy_py_cCFv */ -bool daPy_py_c::checkCopyRodEquip() const { - return false; -} - -/* 8014193C-80141944 13C27C 0008+00 1/0 0/0 0/0 .text checkCutJumpMode__9daPy_py_cCFv */ -BOOL daPy_py_c::checkCutJumpMode() const { - return false; -} - -/* 80141944-8014194C 13C284 0008+00 1/1 0/0 0/0 .text getZeldaActor__9daHorse_cFv */ -fopAc_ac_c* daHorse_c::getZeldaActor() { - return mZeldaActorKeep.getActor(); -} - -/* 8014194C-8014195C 13C28C 0010+00 1/1 0/0 0/0 .text dComIfGp_getDoStatus__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm u8 dComIfGp_getDoStatus() { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_getDoStatus__Fv.s" -} -#pragma pop - -/* 8014195C-8014196C 13C29C 0010+00 1/1 5/5 0/0 .text __ct__4cXyzFfff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void __ct__4cXyzFfff(f32 param_0, f32 param_1, f32 param_2) { - nofralloc -#include "asm/d/a/d_a_alink/__ct__4cXyzFfff.s" -} -#pragma pop - -/* 8014196C-80141988 13C2AC 001C+00 1/1 0/0 0/0 .text dMeter2Info_offUseButton__Fi */ -static void dMeter2Info_offUseButton(int pButton) { - g_meter2_info.offUseButton(pButton); -} - -/* 80141988-80141990 -00001 0008+00 0/0 0/0 0/0 .text setLinkState__14Z2CreatureLinkFUc - */ -void Z2CreatureLink::setLinkState(u8 pState) { - mLinkState = pState; -} - -/* 80141990-801419A0 13C2D0 0010+00 1/1 0/0 0/0 .text dComIfGs_getRupee__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 dComIfGs_getRupee() { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGs_getRupee__Fv.s" -} -#pragma pop - -/* 801419A0-801419B8 13C2E0 0018+00 1/1 0/0 0/0 .text dComIfGp_setItemRupeeCount__Fl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGp_setItemRupeeCount(s32 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_setItemRupeeCount__Fl.s" -} -#pragma pop - -/* 801419B8-801419F4 13C2F8 003C+00 1/1 0/0 0/0 .text dMeter2Info_setFloatingMessage__FUssb */ -static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bool pWakuVisible) { - g_meter2_info.setFloatingMessage(pMessageID, pMessageTimer, pWakuVisible); -} - -/* 801419F4-80141A04 13C334 0010+00 1/1 0/0 0/0 .text onForcePanic__9daMidna_cFv */ -void daMidna_c::onForcePanic() { - onEndResetStateFlg0(ERFLG0_FORCE_PANIC); -} - -/* 80141A04-80141A10 13C344 000C+00 1/1 0/0 0/0 .text checkForceNormalColor__9daMidna_cCFv */ -u32 daMidna_c::checkForceNormalColor() const { - return checkStateFlg1(FLG1_FORCE_NORMAL_COL); -} - -/* 80141A10-80141A1C 13C350 000C+00 1/1 0/0 0/0 .text checkForceTiredColor__9daMidna_cCFv - */ -u32 daMidna_c::checkForceTiredColor() const { - return checkStateFlg1(FLG1_FORCE_TIRED_COL); -} - -/* 80141A1C-80141A84 13C35C 0068+00 1/1 0/0 0/0 .text checkMidnaTired__9daMidna_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daMidna_c::checkMidnaTired() { - nofralloc -#include "asm/d/a/d_a_alink/checkMidnaTired__9daMidna_cFv.s" -} -#pragma pop - -/* 80141A84-80141A94 13C3C4 0010+00 1/1 0/0 0/0 .text onNoServiceWait__9daMidna_cFv */ -void daMidna_c::onNoServiceWait() { - onEndResetStateFlg0(ERFLG0_NO_SERVICE_WAIT); -} - -/* 80141A94-80141ACC 13C3D4 0038+00 1/1 0/0 0/0 .text setControllActorData__8daCrod_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daCrod_c::setControllActorData() { - nofralloc -#include "asm/d/a/d_a_alink/setControllActorData__8daCrod_cFv.s" -} -#pragma pop - -/* 80141ACC-80141AE8 13C40C 001C+00 1/1 0/0 0/0 .text - * PrmAbstract__5daObjFPC10fopAc_ac_cQ312daObjMovebox5Act_c5Prm_eQ312daObjMovebox5Act_c5Prm_e - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80141ACC(void* _this, fopAc_ac_c const* param_0, - daObjMovebox::Act_c::Prm_e param_1, - daObjMovebox::Act_c::Prm_e param_2) { - nofralloc -#include "asm/d/a/d_a_alink/func_80141ACC.s" -} -#pragma pop - -/* 80141AE8-80141B04 13C428 001C+00 1/1 4/4 0/0 .text cLib_calcTimer__FPUc */ -extern "C" int func_80141AE8(u8* pTimer) { - if (*pTimer != 0) { - *pTimer -= 1; - } - return *pTimer; -} - -/* ############################################################################################## */ -/* 80453344-80453348 001944 0004+00 1/1 0/0 0/0 .sdata2 @77808 */ -SECTION_SDATA2 static f32 lit_77808 = 1.2427899837493896f; - -/* 80453348-8045334C 001948 0004+00 1/1 0/0 0/0 .sdata2 @77809 */ -SECTION_SDATA2 static f32 lit_77809 = 102.00054168701172f; - -/* 8045334C-80453350 00194C 0004+00 1/1 0/0 0/0 .sdata2 @77810 */ -SECTION_SDATA2 static f32 lit_77810 = -4.248938083648682f; - -/* 80453350-80453354 001950 0004+00 1/1 0/0 0/0 .sdata2 @77811 */ -SECTION_SDATA2 static f32 lit_77811 = 89.0f; - -/* 80453354-80453358 001954 0004+00 1/1 0/0 0/0 .sdata2 @77812 */ -SECTION_SDATA2 static f32 lit_77812 = -5.267045021057129f; - -/* 80453358-8045335C 001958 0004+00 1/1 0/0 0/0 .sdata2 @77813 */ -SECTION_SDATA2 static f32 lit_77813 = 4.313951015472412f; - -/* 8045335C-80453360 00195C 0004+00 1/1 0/0 0/0 .sdata2 @77814 */ -SECTION_SDATA2 static f32 lit_77814 = 93.9443588256836f; - -/* 80453360-80453364 001960 0004+00 1/1 0/0 0/0 .sdata2 @77815 */ -SECTION_SDATA2 static f32 lit_77815 = -5.207283020019531f; - -/* 80453364-80453368 001964 0004+00 1/1 0/0 0/0 .sdata2 @77816 */ -SECTION_SDATA2 static f32 lit_77816 = -4.30098819732666f; - -/* 80453368-8045336C 001968 0004+00 1/1 0/0 0/0 .sdata2 @77817 */ -SECTION_SDATA2 static f32 lit_77817 = 93.95594787597656f; - -/* 8045336C-80453370 00196C 0004+00 1/1 0/0 0/0 .sdata2 @77818 */ -SECTION_SDATA2 static f32 lit_77818 = -5.218503952026367f; - -/* 80453370-80453374 001970 0004+00 1/1 0/0 0/0 .sdata2 @77819 */ -SECTION_SDATA2 static f32 lit_77819 = 225.6999969482422f; - -/* 80453374-80453378 001974 0004+00 1/1 0/0 0/0 .sdata2 @77820 */ -SECTION_SDATA2 static f32 lit_77820 = 1.809999942779541f; - -/* 80453378-8045337C 001978 0004+00 1/1 0/0 0/0 .sdata2 @77821 */ -SECTION_SDATA2 static f32 lit_77821 = 186.1699981689453f; - -/* 8045337C-80453380 00197C 0004+00 1/1 0/0 0/0 .sdata2 @77822 */ -SECTION_SDATA2 static f32 lit_77822 = -20.290000915527344f; - -/* 80453380-80453384 001980 0004+00 1/1 0/0 0/0 .sdata2 @77823 */ -SECTION_SDATA2 static f32 lit_77823 = -68.208984375f; - -/* 80453384-80453388 001984 0004+00 1/1 0/0 0/0 .sdata2 @77824 */ -SECTION_SDATA2 static f32 lit_77824 = 41.60992431640625f; - -/* 80453388-8045338C 001988 0004+00 1/1 0/0 0/0 .sdata2 @77825 */ -SECTION_SDATA2 static f32 lit_77825 = 0.8837890028953552f; - -/* 8045338C-80453390 00198C 0004+00 1/1 0/0 0/0 .sdata2 @77826 */ -SECTION_SDATA2 static f32 lit_77826 = -72.0f; - -/* 80453390-80453394 001990 0004+00 1/1 0/0 0/0 .sdata2 @77827 */ -SECTION_SDATA2 static f32 lit_77827 = 88.63934326171875f; - -/* 80453394-80453398 001994 0004+00 1/1 0/0 0/0 .sdata2 @77828 */ -SECTION_SDATA2 static f32 lit_77828 = -28.49793243408203f; - -/* 80453398-8045339C 001998 0004+00 1/1 0/0 0/0 .sdata2 @77829 */ -SECTION_SDATA2 static f32 lit_77829 = 0.11516399681568146f; - -/* 8045339C-804533A0 00199C 0004+00 1/1 0/0 0/0 .sdata2 @77830 */ -SECTION_SDATA2 static f32 lit_77830 = 68.33629608154297f; - -/* 804533A0-804533A8 0019A0 0004+04 1/1 0/0 0/0 .sdata2 @77831 */ -SECTION_SDATA2 static f32 lit_77831[1 + 1 /* padding */] = { - -7.667817115783691f, - /* padding */ - 0.0f, -}; - -/* 80141B04-801446D4 13C444 2BD0+00 0/0 1/0 0/0 .text __sinit_d_a_alink_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_a_alink_cpp(){nofralloc -#include "asm/d/a/d_a_alink/__sinit_d_a_alink_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80141B04, __sinit_d_a_alink_cpp); -#pragma pop - -/* 801446D4-801446DC 13F014 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_801446D4() { - nofralloc -#include "asm/d/a/d_a_alink/func_801446D4.s" -} -#pragma pop - -/* 801446DC-801446E4 13F01C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_801446DC() { - nofralloc -#include "asm/d/a/d_a_alink/func_801446DC.s" -} -#pragma pop - -/* 801446E4-801446EC 13F024 0008+00 1/0 0/0 0/0 .text @36@__dt__13dBgS_LinkAcchFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_801446E4() { - nofralloc -#include "asm/d/a/d_a_alink/func_801446E4.s" -} -#pragma pop - -/* 801446EC-801446F4 13F02C 0008+00 1/0 0/0 0/0 .text @20@__dt__13dBgS_LinkAcchFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_801446EC() { - nofralloc -#include "asm/d/a/d_a_alink/func_801446EC.s" -} -#pragma pop - -/* 801446F4-801446FC 13F034 0008+00 1/0 0/0 0/0 .text @20@__dt__15dBgS_LinkGndChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_801446F4() { - nofralloc -#include "asm/d/a/d_a_alink/func_801446F4.s" -} -#pragma pop - -/* 801446FC-80144704 13F03C 0008+00 1/0 0/0 0/0 .text @76@__dt__15dBgS_LinkGndChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_801446FC() { - nofralloc -#include "asm/d/a/d_a_alink/func_801446FC.s" -} -#pragma pop - -/* 80144704-8014470C 13F044 0008+00 1/0 0/0 0/0 .text @60@__dt__15dBgS_LinkGndChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_80144704() { - nofralloc -#include "asm/d/a/d_a_alink/func_80144704.s" -} -#pragma pop - -/* 8014470C-80144714 13F04C 0008+00 1/0 0/0 0/0 .text @16@__dt__16dBgS_LinkRoofChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_8014470C() { - nofralloc -#include "asm/d/a/d_a_alink/func_8014470C.s" -} -#pragma pop - -/* 80144714-8014471C 13F054 0008+00 1/0 0/0 0/0 .text @52@__dt__16dBgS_LinkRoofChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_80144714() { - nofralloc -#include "asm/d/a/d_a_alink/func_80144714.s" -} -#pragma pop - -/* 8014471C-80144724 13F05C 0008+00 1/0 0/0 0/0 .text @36@__dt__16dBgS_LinkRoofChkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_8014471C() { - nofralloc -#include "asm/d/a/d_a_alink/func_8014471C.s" -} -#pragma pop - -/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +// TODO: This isn't a real file, this is a hack to build OK with -sym on +// To properly fix, these symbols need to be compiler generated +#include "d/a/d_a_alink_weakfn.inc" diff --git a/src/d/a/d_a_alink_HIO.inc b/src/d/a/d_a_alink_HIO.inc index 573328ba05..43d3a85962 100644 --- a/src/d/a/d_a_alink_HIO.inc +++ b/src/d/a/d_a_alink_HIO.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_HIO.inc + * Player HostIO interface handling + */ + /* 80140B88-80140B98 13B4C8 0010+00 1/1 0/0 0/0 .text __ct__12daAlinkHIO_cFv */ #pragma push #pragma optimization_level 0 diff --git a/src/d/a/d_a_alink_bomb.inc b/src/d/a/d_a_alink_bomb.inc index 114265b47f..9042b0caa9 100644 --- a/src/d/a/d_a_alink_bomb.inc +++ b/src/d/a/d_a_alink_bomb.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_bomb.inc + * Player Bomb action handling + */ + /* 800E3760-800E3770 0DE0A0 0010+00 0/0 0/0 7/7 .text getBombExplodeTime__9daAlink_cCFv */ s16 daAlink_c::getBombExplodeTime() const { diff --git a/src/d/a/d_a_alink_boom.inc b/src/d/a/d_a_alink_boom.inc index 7985708fa6..bf2ab9b9c7 100644 --- a/src/d/a/d_a_alink_boom.inc +++ b/src/d/a/d_a_alink_boom.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_boom.inc + * Player Boomerang action handling + */ + #include "rel/d/a/d_a_boomerang/d_a_boomerang.h" /* 800DFFE0-800E0010 0DA920 0030+00 0/0 0/0 1/1 .text checkBoomerangLockAccept__9daAlink_cFv */ @@ -374,9 +379,9 @@ int daAlink_c::checkBoomerangCatchAction() { /* 800E0E64-800E0F10 0DB7A4 00AC+00 3/3 0/0 0/0 .text setBoomerangSight__9daAlink_cFv */ void daAlink_c::setBoomerangSight() { if (mItemAcKeep.getActor() && !checkBoomerangThrowAnime()) { - BOOL check_line = checkSightLine(getBoomLockMax(), &field_0x37e0); + BOOL check_line = checkSightLine(getBoomLockMax(), &mHeldItemRootPos); - mSight.setPos(&field_0x37e0); + mSight.setPos(&mHeldItemRootPos); mSight.onDrawFlg(); daBoomerang_c* boomerang = (daBoomerang_c*)mItemAcKeep.getActor(); diff --git a/src/d/a/d_a_alink_bottle.inc b/src/d/a/d_a_alink_bottle.inc index 05393eb67f..58478f8835 100644 --- a/src/d/a/d_a_alink_bottle.inc +++ b/src/d/a/d_a_alink_bottle.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_bottle.inc + * Player Bottle action handling + */ + #include "d/d_insect.h" /* 8010E48C-8010E52C 108DCC 00A0+00 1/1 0/0 0/0 .text bottleModelCallBack__9daAlink_cFv @@ -119,16 +124,16 @@ int daAlink_c::procBottleDrinkInit(u16 param_0) { u32 id = fopAcM_GetID(this); dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0); field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; return 1; } /* 8010F698-8010F6F4 109FD8 005C+00 1/0 0/0 0/0 .text procBottleDrink__9daAlink_cFv */ int daAlink_c::procBottleDrink() { - if (field_0x300e != 0) { + if (field_0x300e.x != 0) { dComIfGp_evmng_cutEnd(field_0x3184); } else { - field_0x300e = commonBottleDrink(0); + field_0x300e.x = commonBottleDrink(0); } return 1; @@ -170,7 +175,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) { } } - field_0x300e = 0; + field_0x300e.x = 0; u32 id = fopAcM_GetID(this); dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0); @@ -181,7 +186,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) { if (param_0 == 0x67) { setCylAtParam(0x200, 0, 0, 0, 0, 30.0f, 30.0f); } - field_0x3010 = 0; + field_0x300e.y = 0; return 1; } diff --git a/src/d/a/d_a_alink_bow.inc b/src/d/a/d_a_alink_bow.inc index 6d57df109c..d992495e29 100644 --- a/src/d/a/d_a_alink_bow.inc +++ b/src/d/a/d_a_alink_bow.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_bow.inc + * Player Bow and Arrow action handling + */ + #include "rel/d/a/d_a_arrow/d_a_arrow.h" /* 800DE64C-800DE740 0D8F8C 00F4+00 1/1 0/0 2/2 .text getArrowFlyData__9daAlink_cCFPfPfi @@ -58,7 +63,7 @@ void daAlink_c::setSlingModel() { J3DModelData* model_data = loadAramBmd(0x319, 0x2C00); mHeldItemModel = initModel(model_data, 0); - field_0x730.init(bck, 0, 2, lit_6040, 0, -1, false); + mItemBck.init(bck, 0, 2, lit_6040, 0, -1, false); mDoExt_setCurrentHeap(heap); field_0x2f95 = 5; @@ -85,11 +90,11 @@ cXyz* daAlink_c::checkBowCameraArrowPosP(s16* param_0, s16* param_1) { mDoMtx_stack_c::transS(field_0x3834); concatMagneBootMtx(); mDoMtx_stack_c::ZXYrotM(mBodyAngle.x, var_28, 0); - mDoMtx_stack_c::multVec(&localPos, &field_0x37e0); + mDoMtx_stack_c::multVec(&localPos, &mHeldItemRootPos); *param_0 = mBodyAngle.x; *param_1 = var_28; - return &field_0x37e0; + return &mHeldItemRootPos; } /* 800DE990-800DE9B8 0D92D0 0028+00 1/0 0/0 0/0 .text checkArrowChargeEnd__9daAlink_cCFv @@ -275,10 +280,10 @@ void daAlink_c::setBowModel() { JKRHeap* old_heap = setItemHeap(); mHeldItemModel = initModel(loadAramBmd(0x314, 0x4C00), 0); - field_0x730.init(bck, FALSE, 2, 1.0f, 0, -1, false); + mItemBck.init(bck, FALSE, 2, 1.0f, 0, -1, false); mDoExt_setCurrentHeap(old_heap); - field_0x33dc = field_0x730.getBckAnm()->getFrameMax() - 0.001f; + field_0x33dc = mItemBck.getBckAnm()->getFrameMax() - 0.001f; field_0x2f95 = 5; field_0x2f94 = 0x67; } diff --git a/src/d/a/d_a_alink_canoe.inc b/src/d/a/d_a_alink_canoe.inc index e3557ac28e..efa8d80dd9 100644 --- a/src/d/a/d_a_alink_canoe.inc +++ b/src/d/a/d_a_alink_canoe.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_canoe.inc + * Player Canoe riding handling + */ + #include "rel/d/a/d_a_canoe/d_a_canoe.h" /* 800F3BB0-800F3BDC 0EE4F0 002C+00 1/1 0/0 2/2 .text getCanoeMaxSpeed__9daAlink_cCFv */ @@ -122,11 +127,11 @@ BOOL daAlink_c::checkCanoeFishingRodGrabOrPut() const { /* 800F3FC4-800F4008 0EE904 0044+00 2/2 0/0 0/0 .text initCanoeRide__9daAlink_cFv */ void daAlink_c::initCanoeRide() { - field_0x3012 = 1; + field_0x300e.z = 1; field_0x3588 = l_waitBaseAnime; field_0x384c = (cXyz*)&l_canoeBaseAnime; mRideStatus = 3; - field_0x3010 = 0; + field_0x300e.y = 0; } /* 800F4008-800F40E4 0EE948 00DC+00 2/2 0/0 0/0 .text checkCanoeJumpRide__9daAlink_cFv */ @@ -141,7 +146,7 @@ BOOL daAlink_c::checkCanoeJumpRide() { if (speed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE && canoe->checkJumpRideFlg() && !checkDeadHP() && - (mProcID != PROC_FALL || field_0x3010 != 0)) { + (mProcID != PROC_FALL || field_0x300e.y != 0)) { return procCanoeJumpRideInit(canoe); } @@ -274,7 +279,7 @@ int daAlink_c::procCanoeRideInit() { current.angle.y = shape_angle.y; initCanoeRide(); - field_0x300e = 0x80; + field_0x300e.x = 0x80; swimOutAfter(1); return 1; } @@ -292,12 +297,12 @@ int daAlink_c::procCanoeRide() { if (frameCtrl->checkAnmEnd()) { procCanoeWaitInit(1); } else if (frameCtrl->getFrame() < lit_7710) { - field_0x300e += 0x180; + field_0x300e.x += 0x180; if (field_0x3008 == 0) { - canoe->incShapeAngleZ(-field_0x300e); + canoe->incShapeAngleZ(-field_0x300e.x); } else { - canoe->incShapeAngleZ(field_0x300e); + canoe->incShapeAngleZ(field_0x300e.x); } canoe->incShapeOffsetY(lit_21021); } diff --git a/src/d/a/d_a_alink_copyrod.inc b/src/d/a/d_a_alink_copyrod.inc index e5e7eb918c..7ec7bc6c2c 100644 --- a/src/d/a/d_a_alink_copyrod.inc +++ b/src/d/a/d_a_alink_copyrod.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_copyrod.inc + * Player Dominion Rod action handling + */ + #include "rel/d/a/d_a_cstatue/d_a_cstatue.h" /* 800E12E0-800E1310 0DBC20 0030+00 1/1 0/0 0/0 .text checkLv6BossRoom__9daAlink_cFv */ @@ -68,7 +73,7 @@ BOOL daAlink_c::checkForestOldCentury() { /* 800E145C-800E1530 0DBD9C 00D4+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daAlink_cFv */ BOOL daAlink_c::checkCopyRodTopUse() { // Event flag 0x2580: Dominion Rod power restored - return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && field_0x300e != 0)) || + return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && field_0x300e.x != 0)) || i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 || checkForestOldCentury(); } @@ -378,7 +383,7 @@ int daAlink_c::procCopyRodSwingInit() { mNormalSpeed = FLOAT_LABEL(lit_6108); current.angle.y = shape_angle.y; field_0x300c = 1; - field_0x300e = 0; + field_0x300e.x = 0; voiceStart(Z2SE_AL_V_ATTACK_S); mAtCps[0].SetR(lit_11442); @@ -400,16 +405,16 @@ int daAlink_c::procCopyRodSwing() { setCopyRodControllAnime(); } } else if (frameCtrl->getFrame() >= field_0x3478 && frameCtrl->getFrame() < field_0x347c) { - if (field_0x300e == 0) { + if (field_0x300e.x == 0) { seStartSwordCut(Z2SE_AL_COPYROD_SWING); } - field_0x300e = 1; + field_0x300e.x = 1; if (changeCutReverseProc(ANM_CUT_RECOIL_A)) { return 1; } } else { - field_0x300e = 0; + field_0x300e.x = 0; } return 1; diff --git a/src/d/a/d_a_alink_crawl.inc b/src/d/a/d_a_alink_crawl.inc index 4b5d3b5841..da988a8f49 100644 --- a/src/d/a/d_a_alink_crawl.inc +++ b/src/d/a/d_a_alink_crawl.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_crawl.inc + * Player Crawl action handling + */ + /* 800F7C50-800F7C74 0F2590 0024+00 2/2 0/0 0/0 .text getCrawlMoveAnmSpeed__9daAlink_cFv */ f32 daAlink_c::getCrawlMoveAnmSpeed() { diff --git a/src/d/a/d_a_alink_cut.inc b/src/d/a/d_a_alink_cut.inc index ef7c39fdff..ed00c573f5 100644 --- a/src/d/a/d_a_alink_cut.inc +++ b/src/d/a/d_a_alink_cut.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_cut.inc + * Player Sword action handling + */ + /* 800D0D38-800D0E08 0CB678 00D0+00 1/1 0/0 0/0 .text daAlink_searchNightStalker__FP10fopAc_ac_cPv */ #pragma push @@ -541,13 +546,13 @@ int daAlink_c::checkCutAction() { /* 800D2684-800D26EC 0CCFC4 0068+00 9/9 0/0 0/0 .text checkCutTurnCharge__9daAlink_cFv */ void daAlink_c::checkCutTurnCharge() { if (swordButton()) { - if (field_0x3012 < 3) { - field_0x3012++; + if (field_0x300e.z < 3) { + field_0x300e.z++; } else { i_onResetFlg0(RFLG0_UNK_40); } } else { - field_0x3012 = 0; + field_0x300e.z = 0; } } @@ -664,9 +669,9 @@ void daAlink_c::cancelCutCharge() { */ void daAlink_c::initCutAtnActorSearch() { if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) { - field_0x3010 = 1; + field_0x300e.y = 1; } else { - field_0x3010 = 0; + field_0x300e.y = 0; } field_0x32cc = (u32)mTargetedActor; @@ -675,7 +680,7 @@ void daAlink_c::initCutAtnActorSearch() { /* 800D2C54-800D2C78 0CD594 0024+00 3/3 0/0 0/0 .text checkCutAtnActorChange__9daAlink_cFv */ void daAlink_c::checkCutAtnActorChange() { if (field_0x32cc != (u32)mTargetedActor) { - field_0x3010 = 0; + field_0x300e.y = 0; field_0x32cc = (u32)mTargetedActor; } } @@ -791,16 +796,16 @@ int daAlink_c::procCutNormalInit(int i_type) { setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius); setSwordComboVoice(); - field_0x3012 = 0; + field_0x300e.z = 0; dComIfGp_setPlayerStatus0(0, 0x8000); setCutWaterDropEffect(); int cutDir = getCutDirection(); if (mComboCutCount == 1 && (cutDir == DIR_LEFT || cutDir == DIR_RIGHT)) { - field_0x300e = 1; + field_0x300e.x = 1; } else { - field_0x300e = 0; + field_0x300e.x = 0; } field_0x300a = 4; @@ -825,7 +830,7 @@ int daAlink_c::procCutNormal() { i_onEndResetFlg0(ERFLG0_UNK_8000000); field_0x2f99 = 4; - if (field_0x300e != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) { + if (field_0x300e.x != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) { int cutDir = getCutDirection(); if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT && frameCtrl->getFrame() > lit_7448) || @@ -853,11 +858,11 @@ int daAlink_c::procCutNormal() { return 1; } - if (setShapeAngleToAtnActor(field_0x3010)) { + if (setShapeAngleToAtnActor(field_0x300e.y)) { field_0x300c = shape_angle.y; if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) { - field_0x3010 = 1; + field_0x300e.y = 1; } } else { cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x2000, 0x800); @@ -904,7 +909,7 @@ int daAlink_c::procCutFinishInit(int i_type) { setCutType(cutParams->m_cutType); field_0x3198 = cutParams->field_0x4; field_0x300c = cutParams->field_0xa; - field_0x300e = cutParams->field_0xb; + field_0x300e.x = cutParams->field_0xb; BOOL var_r30 = FALSE; if (i_type == 0) { @@ -985,7 +990,7 @@ int daAlink_c::procCutFinishInit(int i_type) { field_0x2f99 = 13; } - field_0x3012 = 0; + field_0x300e.z = 0; dComIfGp_setPlayerStatus0(0, 0x8000); setCutWaterDropEffect(); initCutAtnActorSearch(); @@ -1058,7 +1063,7 @@ int daAlink_c::procCutFinishJumpUpInit() { daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame, daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation); setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK); - field_0x3012 = 0; + field_0x300e.z = 0; field_0x3478 = current.pos.y; dComIfGp_setPlayerStatus0(0, 0x8000); setCutWaterDropEffect(); @@ -1121,7 +1126,7 @@ int daAlink_c::procCutFinishJumpUpLandInit() { field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime; } - field_0x3012 = 0; + field_0x300e.z = 0; field_0x3588 = l_halfAtnWaitBaseAnime; initCutAtnActorSearch(); return 1; @@ -1158,10 +1163,10 @@ int daAlink_c::procCutFinishJumpUpLand() { resetCombo(1); } - setShapeAngleToAtnActor(field_0x3010); + setShapeAngleToAtnActor(field_0x300e.y); if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) { - field_0x3010 = 1; + field_0x300e.y = 1; } current.angle.y = shape_angle.y; @@ -1201,7 +1206,7 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) { mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed; current.angle.y = shape_angle.y - -0x8000; field_0x307e = 0; - field_0x3012 = 0; + field_0x300e.z = 0; int temp_r3; if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B || @@ -1401,7 +1406,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { field_0x3484 = cutData->mRightAttackStartFrame; field_0x3488 = cutData->mRightAttackEndFrame; - field_0x3010 = 1; + field_0x300e.y = 1; field_0x300a = 6; } else { anmID = ANM_CUT_TURN_LEFT; @@ -1415,7 +1420,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { field_0x3484 = cutData->mLeftAttackStartFrame; field_0x3488 = cutData->mLeftAttackEndFrame; - field_0x3010 = 0; + field_0x300e.y = 0; field_0x300a = 8; } @@ -1471,7 +1476,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { field_0x3180 = 0; dComIfGp_setPlayerStatus0(0, 0x8000); mNormalSpeed = FLOAT_LABEL(lit_6108); - field_0x3012 = 0; + field_0x300e.z = 0; setCutWaterDropEffect(); initCutTurnAt(field_0x347c, var_r29_3); return 1; @@ -1635,7 +1640,7 @@ asm int daAlink_c::procCutDownInit() { /* 800D57F8-800D58A0 0D0138 00A8+00 1/0 0/0 0/0 .text procCutDown__9daAlink_cFv */ int daAlink_c::procCutDown() { - if (field_0x300e != 0) { + if (field_0x300e.x != 0) { return 1; } @@ -1682,7 +1687,7 @@ asm int daAlink_c::procCutHeadInit() { /* 800D5FC8-800D6130 0D0908 0168+00 1/0 0/0 0/0 .text procCutHead__9daAlink_cFv */ int daAlink_c::procCutHead() { - if (field_0x300e == 0) { + if (field_0x300e.x == 0) { cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), field_0x3478); if (speed.y <= FLOAT_LABEL(lit_6108)) { @@ -1691,7 +1696,7 @@ int daAlink_c::procCutHead() { mNormalSpeed = tmp_0; speed.y = tmp_0; setSpecialGravity(tmp_0, mMaxFallSpeed, 0); - field_0x300e = 1; + field_0x300e.x = 1; setCutWaterDropEffect(); setSwordVoiceSe(Z2SE_AL_V_KABUTO_ATK); } @@ -1805,8 +1810,8 @@ int daAlink_c::procCutLargeJumpInit() { setCutType(CUT_TYPE_LARGE_JUMP_INIT); setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1); setCutWaterDropEffect(); - field_0x300e = 4; - field_0x3010 = 0; + field_0x300e.x = 4; + field_0x300e.y = 0; field_0x3198 = 2; return 1; } @@ -1815,7 +1820,7 @@ int daAlink_c::procCutLargeJumpInit() { int daAlink_c::procCutLargeJump() { daPy_frameCtrl_c* frameCtrl = &mUnderFrameCtrl[0]; - if (field_0x3010 != 0) { + if (field_0x300e.y != 0) { field_0x2f99 = 4; } @@ -1831,7 +1836,7 @@ int daAlink_c::procCutLargeJump() { setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2); } else { if (frameCtrl->getFrame() >= lit_7307) { - field_0x3010 = 1; + field_0x300e.y = 1; } if (!i_checkModeFlg(2) && frameCtrl->getFrame() >= lit_7808) { @@ -1850,10 +1855,10 @@ int daAlink_c::procCutLargeJump() { } } } else { - if (field_0x300e != 0) { - field_0x300e--; + if (field_0x300e.x != 0) { + field_0x300e.x--; - if (field_0x300e == 0) { + if (field_0x300e.x == 0) { setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius); setCutType(CUT_TYPE_LARGE_JUMP); @@ -1951,8 +1956,8 @@ int daAlink_c::procSwordUnequipSpInit() { field_0x3588 = l_halfAtnWaitBaseAnime; field_0x3198 = 0; field_0x300c = 0; - field_0x300e = (0x1E - mDemo.getDemoMode()) != 0; - field_0x3010 = 0; + field_0x300e.x = (0x1E - mDemo.getDemoMode()) != 0; + field_0x300e.y = 0; return 1; } @@ -1965,10 +1970,10 @@ int daAlink_c::procSwordUnequipSp() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (field_0x300e != 0) { + if (field_0x300e.x != 0) { field_0x2f99 = 4; } else { - field_0x300e = 1; + field_0x300e.x = 1; } i_onEndResetFlg0(ERFLG0_UNK_8000000); @@ -1977,8 +1982,8 @@ int daAlink_c::procSwordUnequipSp() { i_onEndResetFlg1(ERFLG1_GANON_FINISH); } - if (field_0x3010 == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) { - field_0x3010 = 1; + if (field_0x300e.y == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) { + field_0x300e.y = 1; setFaceBasicBck(0x149); setFaceBasicBtp(0x3E1); } diff --git a/src/d/a/d_a_alink_damage.inc b/src/d/a/d_a_alink_damage.inc index f76027058c..3f15ce2ea6 100644 --- a/src/d/a/d_a_alink_damage.inc +++ b/src/d/a/d_a_alink_damage.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_damage.inc + * Player Damage action handling + */ + /* 800D6D94-800D6DA4 0D16D4 0010+00 0/0 0/0 2/2 .text getFreezeR__9daAlink_cCFv */ s16 daAlink_c::getFreezeR() const { return daAlinkHIO_damage_c0::m.mFreezeR; diff --git a/src/d/a/d_a_alink_demo.inc b/src/d/a/d_a_alink_demo.inc index 2379f9b869..22642ea7f3 100644 --- a/src/d/a/d_a_alink_demo.inc +++ b/src/d/a/d_a_alink_demo.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_demo.inc + * Player Cutscene / Event action handling + */ + #include "f_op/f_op_msg_mng.h" /* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */ @@ -263,7 +268,7 @@ BOOL daAlink_c::checkEndMessage(u32 param_0) { /* 80118840-801188B0 113180 0070+00 1/1 0/0 0/0 .text setDemoRightHandIndex__9daAlink_cFUs */ u8 daAlink_c::setDemoRightHandIndex(u16 param_0) { if (param_0 == 0xFD) { - field_0x3010 = 1; + field_0x300e.y = 1; return 6; } else if (param_0 == 0xFC) { field_0x2fab |= 0x10; @@ -535,7 +540,7 @@ int daAlink_c::procCoToolDemoInit() { mNowAnmPackUpper[1].setAnmTransform(NULL); field_0x3198 = 0; - field_0x3010 = 0; + field_0x300e.y = 0; field_0x2fab = 0; deleteEquipItem(FALSE, TRUE); mUnderAnmHeap[0].setBufferSize(0x10800); @@ -646,7 +651,7 @@ int daAlink_c::procCoUnequip() { void daAlink_c::setGetSubBgm(int param_0) { u32 se_type = getSeType[param_0]; - if (se_type == 3 && field_0x3010 == 0) { + if (se_type == 3 && field_0x300e.y == 0) { se_type = 7; } @@ -931,7 +936,7 @@ int daAlink_c::procCoLookAround() { if (checkAnmEnd(frame_ctrl)) { dComIfGp_evmng_cutEnd(field_0x3184); - } else if (field_0x300e != 0 && frame_ctrl->checkPass(lit_7808)) { + } else if (field_0x300e.x != 0 && frame_ctrl->checkPass(lit_7808)) { voiceStart(Z2SE_AL_V_ENTRANCE); } @@ -1066,7 +1071,7 @@ int daAlink_c::procHandPatInit() { setOldRootQuaternion(0, -0x8000, 0); shape_angle.y += 0x8000; field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; return 1; } @@ -1310,7 +1315,7 @@ int daAlink_c::procWolfSnowEscapeInit() { field_0x3588 = l_wolfBaseAnime; field_0x3478 = lit_37528; field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; mNormalSpeed = lit_6845; return 1; } @@ -1338,8 +1343,8 @@ int daAlink_c::procZoraMoveInit() { setSpecialGravity(tmp_0, mMaxFallSpeed, 0); deleteEquipItem(FALSE, TRUE); - field_0x3010 = 5000; - field_0x3012 = 0; + field_0x300e.y = 5000; + field_0x300e.z = 0; field_0x384c = (cXyz*)&l_boarBaseAnime; return 1; } @@ -1393,18 +1398,18 @@ int daAlink_c::procTradeItemOutInit() { field_0x300c = 0; } - field_0x300e = 0; + field_0x300e.x = 0; dComIfGp_setPlayerStatus0(0, 0x10); - field_0x3010 = 1; + field_0x300e.y = 1; if (mDemo.getParam0() != 1) { if (mDemo.getParam0() == 2) { if (checkLetterItem(mDemo.getParam1())) { - field_0x3010 = 0; + field_0x300e.y = 0; } } else { if (checkLetterItem(dComIfGp_event_getPreItemNo())) { - field_0x3010 = 0; + field_0x300e.y = 0; } } } @@ -1628,7 +1633,7 @@ int daAlink_c::procMasterSwordPullInit() { setSingleAnimeBase(ANM_DEMO_MASTER_SWORD_PULL); voiceStart(Z2SE_AL_V_MSTR_SW_PULLOUT); - field_0x3010 = 0; + field_0x300e.y = 0; return 1; } @@ -1643,9 +1648,9 @@ int daAlink_c::procMasterSwordPull() { } else if (frame_ctrl->getFrame() >= lit_8780) { field_0x2f93 = 10; } else if (frame_ctrl->getFrame() >= lit_7710) { - field_0x3010 = 0; + field_0x300e.y = 0; } else if (frame_ctrl->getFrame() >= lit_6040) { - field_0x3010 = 4; + field_0x300e.y = 4; } return 1; @@ -1707,10 +1712,10 @@ int daAlink_c::procDungeonWarpInit() { } field_0x300c = 0; - field_0x3012 = 0; + field_0x300e.z = 0; setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); - field_0x300e = 0; - field_0x3010 = 0; + field_0x300e.x = 0; + field_0x300e.y = 0; return 1; } @@ -1729,15 +1734,15 @@ int daAlink_c::procDungeonWarp() { f32 sin = cM_ssin(field_0x300c); shape_angle.y += (s16)(14336.0f * sin); - field_0x300e = 8.0f * sin + 24.0f * (1.0f - mScale.x); + field_0x300e.x = 8.0f * sin + 24.0f * (1.0f - mScale.x); - if (field_0x3012 != 0) { + if (field_0x300e.z != 0) { return 1; } else { if (field_0x300c == 0x4000) { - if (field_0x3010 == 0) { + if (field_0x300e.y == 0) { dComIfGp_particle_set(0xA61, ¤t.pos, &mTevStr, NULL, NULL); - field_0x3010 = 1; + field_0x300e.y = 1; } cLib_addCalc(&mScale.x, 0.0f, 0.5f, 0.4f, 0.005f); @@ -1755,7 +1760,7 @@ int daAlink_c::procDungeonWarp() { dMeter2Info_warpInProc(); } - field_0x3012 = 1; + field_0x300e.z = 1; } current.pos.y += 5.0f; field_0x2b98 = (1.0f - mScale.y) * 100.0f; @@ -1880,7 +1885,7 @@ void daAlink_c::dungeonReturnWarp() { /* 8011F8B8-8011F9EC 11A1F8 0134+00 1/0 0/0 0/0 .text skipPortalObjWarp__9daAlink_cFv */ void daAlink_c::skipPortalObjWarp() { - if (mProcID == PROC_WARP && field_0x300e <= 0) { + if (mProcID == PROC_WARP && field_0x300e.x <= 0) { return; } @@ -1897,7 +1902,7 @@ void daAlink_c::skipPortalObjWarp() { } if (mProcID == PROC_WARP) { - field_0x300e = -1; + field_0x300e.x = -1; } } @@ -1974,4 +1979,49 @@ asm int daAlink_c::procCoWarp() { nofralloc #include "asm/d/a/d_a_alink/procCoWarp__9daAlink_cFv.s" } -#pragma pop \ No newline at end of file +#pragma pop + +/* 80120440-80120474 11AD80 0034+00 1/0 0/0 0/0 .text commonWaitTurnInit__9daAlink_cFv */ +void daAlink_c::commonWaitTurnInit() { + if (i_checkWolf()) { + procWolfWaitTurnInit(); + } else { + procWaitTurnInit(); + } +} + +/* 80120474-80120500 11ADB4 008C+00 2/1 0/0 0/0 .text commonGrabPutInit__9daAlink_cFv */ +int daAlink_c::commonGrabPutInit() { + if (mGrabItemAcKeep.getActor() == NULL) { + if (mProcID != PROC_GRAB_STAND && + (mProcID != PROC_WOLF_GRAB_PUT || !(mUnderFrameCtrl[0].getFrame() < field_0x3478))) + { + dComIfGp_evmng_cutEnd(field_0x3184); + return 1; + } + } + + if (i_checkWolf()) { + return procWolfGrabPutInit(); + } + + return procGrabPutInit(); +} + +/* 80120500-80120534 11AE40 0034+00 3/3 0/0 0/0 .text commonLargeDamageUpInit__9daAlink_cFiiss */ +void daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 param_3) { + if (i_checkWolf()) { + procWolfLargeDamageUpInit(param_0, param_1, param_2, param_3); + } else { + procLargeDamageUpInit(param_0, param_1, param_2, param_3); + } +} + +/* 80120534-80120580 11AE74 004C+00 4/4 0/0 0/0 .text commonFallInit__9daAlink_cFi */ +void daAlink_c::commonFallInit(int param_0) { + if (i_checkWolf()) { + procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.field_0x54); + } else { + procFallInit(param_0, daAlinkHIO_autoJump_c0::m.mFallInterpolation); + } +} diff --git a/src/d/a/d_a_alink_effect.inc b/src/d/a/d_a_alink_effect.inc index 6f0931a623..12ef8973c2 100644 --- a/src/d/a/d_a_alink_effect.inc +++ b/src/d/a/d_a_alink_effect.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_effect.inc + * Player Particle Effect handling + */ + /* 80120580-80120634 11AEC0 00B4+00 21/21 0/0 0/0 .text * setEmitter__9daAlink_cFPUlUsPC4cXyzPC5csXyz */ // matches with literal diff --git a/src/d/a/d_a_alink_grab.inc b/src/d/a/d_a_alink_grab.inc index 4a60fcfe62..31d741dadf 100644 --- a/src/d/a/d_a_alink_grab.inc +++ b/src/d/a/d_a_alink_grab.inc @@ -837,4 +837,149 @@ asm int daAlink_c::procPullMove() { nofralloc #include "asm/d/a/d_a_alink/procPullMove__9daAlink_cFv.s" } -#pragma pop \ No newline at end of file +#pragma pop + +/* 800E91B0-800E91C4 0E3AF0 0014+00 1/1 0/0 0/0 .text daAlink_searchGoat__FP10fopAc_ac_cPv */ +static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void*) { + if (fopAcM_GetName(i_actor) == PROC_COW) { + return i_actor; + } + + return NULL; +} + +/* 800E91C4-800E9210 0E3B04 004C+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daAlink_cFv + */ +void daAlink_c::cancelGoronThrowEvent() { + if (mProcID == PROC_GOAT_CATCH && field_0x300e.z == 0) { + field_0x300e.z = 1; + i_dComIfGp_event_reset(); + } +} + +/* 800E9210-800E9344 0E3B50 0134+00 2/2 0/0 0/0 .text + * setGoatStopGameFail__9daAlink_cFP10fopAc_ac_c */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daAlink_c::setGoatStopGameFail(fopAc_ac_c* param_0) { + nofralloc +#include "asm/d/a/d_a_alink/setGoatStopGameFail__9daAlink_cFP10fopAc_ac_c.s" +} +#pragma pop + +/* 800E9344-800E9434 0E3C84 00F0+00 1/1 0/0 0/0 .text procGoatMoveInit__9daAlink_cFv */ +int daAlink_c::procGoatMoveInit() { + if (!commonProcInitNotSameProc(PROC_GOAT_MOVE)) { + return 0; + } + + if (checkZeroSpeedF()) { + onModeFlg(1); + } + + mNormalSpeed = FLOAT_LABEL(lit_6108); + field_0x37c8 = current.pos; + field_0x2f98 = 3; + current.angle.y = shape_angle.y + -0x4000; + field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed; + + setSingleAnimeBase(ANM_ATN_COW); + field_0x300c = 0; + + fopAc_ac_c* goat_p = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGoat, NULL); + if (goat_p != NULL) { + field_0x280c.setData(goat_p); + } + + field_0x300e.x = 0; + deleteEquipItem(FALSE, FALSE); + return 1; +} + +/* 800E9434-800E9894 0E3D74 0460+00 1/0 0/0 0/0 .text procGoatMove__9daAlink_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm int daAlink_c::procGoatMove() { + nofralloc +#include "asm/d/a/d_a_alink/procGoatMove__9daAlink_cFv.s" +} +#pragma pop + +/* 800E9894-800E9BD0 0E41D4 033C+00 3/3 0/0 0/0 .text procGoatCatchInit__9daAlink_cFP10fopAc_ac_cf + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm int daAlink_c::procGoatCatchInit(fopAc_ac_c* param_0, f32 param_1) { + nofralloc +#include "asm/d/a/d_a_alink/procGoatCatchInit__9daAlink_cFP10fopAc_ac_cf.s" +} +#pragma pop + +/* 800E9BD0-800EA2A8 0E4510 06D8+00 1/0 0/0 0/0 .text procGoatCatch__9daAlink_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm int daAlink_c::procGoatCatch() { + nofralloc +#include "asm/d/a/d_a_alink/procGoatCatch__9daAlink_cFv.s" +} +#pragma pop + +/* 800EA2A8-800EA3AC 0E4BE8 0104+00 2/2 0/0 0/0 .text procGoatStrokeInit__9daAlink_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm int daAlink_c::procGoatStrokeInit() { + nofralloc +#include "asm/d/a/d_a_alink/procGoatStrokeInit__9daAlink_cFv.s" +} +#pragma pop + +/* 800EA3AC-800EA3F4 0E4CEC 0048+00 1/0 0/0 0/0 .text procGoatStroke__9daAlink_cFv */ +int daAlink_c::procGoatStroke() { + if (mUnderFrameCtrl[0].checkAnmEnd()) { + checkNextAction(0); + } + + return 1; +} + +/* 800EA3F4-800EA4CC 0E4D34 00D8+00 2/2 0/0 0/0 .text procGoronMoveInit__9daAlink_cFv */ +int daAlink_c::procGoronMoveInit() { + if (mEquipItem != NO_ITEM) { + return procPreActionUnequipInit(PROC_GORON_MOVE, NULL); + } + + if (!commonProcInitNotSameProc(PROC_GORON_MOVE)) { + return 0; + } + + mCargoCarryAcKeep.setActor(); + + if (mCargoCarryAcKeep.getActor() == NULL) { + offGoronSideMove(); + return 0; + } + + mNormalSpeed = FLOAT_LABEL(lit_6108); + field_0x2f98 = 3; + current.angle.y = shape_angle.y + -0x4000; + field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed; + setSingleAnimeBase(ANM_ATN_RIGHT); + field_0x300c = 1; + field_0x300e.x = 0; + return 1; +} + +/* 800EA4CC-800EA844 0E4E0C 0378+00 1/0 0/0 0/0 .text procGoronMove__9daAlink_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm int daAlink_c::procGoronMove() { + nofralloc +#include "asm/d/a/d_a_alink/procGoronMove__9daAlink_cFv.s" +} +#pragma pop diff --git a/src/d/a/d_a_alink_guard.inc b/src/d/a/d_a_alink_guard.inc index 0b579dde62..7aaf8bb156 100644 --- a/src/d/a/d_a_alink_guard.inc +++ b/src/d/a/d_a_alink_guard.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_guard.inc + * Player Shield action handling + */ + /* 800DC548-800DC5A4 0D6E88 005C+00 13/13 0/0 0/0 .text checkEnemyGroup__9daAlink_cFP10fopAc_ac_c */ BOOL daAlink_c::checkEnemyGroup(fopAc_ac_c* i_actor) { diff --git a/src/d/a/d_a_alink_hang.inc b/src/d/a/d_a_alink_hang.inc index fea7a305d8..59552b5e08 100644 --- a/src/d/a/d_a_alink_hang.inc +++ b/src/d/a/d_a_alink_hang.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_hang.inc + * Player hang / climb action handling + */ + #include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h" #include "rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h" @@ -521,10 +526,10 @@ int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) { speed.y = FLOAT_LABEL(lit_6108); field_0x300c = 0; - field_0x300e = 0; - field_0x3010 = 0; + field_0x300e.x = 0; + field_0x300e.y = 0; field_0x3008 = 0; - field_0x3012 = 0; + field_0x300e.z = 0; field_0x3080 = 0; field_0x280c.setData(param_0); @@ -687,7 +692,7 @@ int daAlink_c::procLadderUpEndInit(int param_0) { field_0x30a0 = -0x0800; field_0x33f4 = lit_6041; field_0x300c = 1; - field_0x3010 = 1; + field_0x300e.y = 1; dComIfGp_setPlayerStatus0(0, 0x2000000); return 1; } @@ -707,7 +712,7 @@ int daAlink_c::procLadderUpEnd() { { if (frame_ctrl->getFrame() >= lit_15341) { field_0x300c = 0; - field_0x3010 = 0; + field_0x300e.y = 0; } else if (frame_ctrl->getFrame() >= lit_17382) { field_0x30a0 = 0; field_0x33f4 = FLOAT_LABEL(lit_6108); @@ -745,7 +750,7 @@ int daAlink_c::procLadderDownStart() { } } else if (frame_ctrl->getFrame() >= lit_10286) { field_0x300c = 1; - field_0x3010 = 1; + field_0x300e.y = 1; } return 1; @@ -765,7 +770,7 @@ int daAlink_c::procLadderDownEndInit(int param_0) { field_0x30a0 = 0x2800; field_0x33f4 = lit_6040; field_0x300c = 0; - field_0x3010 = 0; + field_0x300e.y = 0; dComIfGp_setPlayerStatus0(0, 0x2000000); return 1; } diff --git a/src/d/a/d_a_alink_hook.inc b/src/d/a/d_a_alink_hook.inc index 7491bb6db4..d19df6d005 100644 --- a/src/d/a/d_a_alink_hook.inc +++ b/src/d/a/d_a_alink_hook.inc @@ -1,3 +1,18 @@ +/** + * d_a_alink_hook.inc + * Player Clawshot action handling + */ + +#include "rel/d/a/b/d_a_b_dr/d_a_b_dr.h" + +enum { + HS_MODE_NONE_e, + HS_MODE_READY_e, + HS_MODE_SHOOT_e = 3, + HS_MODE_FLY_e, + HS_MODE_RETURN_e = 6, +}; + /* 80107900-801083C8 102240 0AC8+00 1/0 0/0 0/0 .text draw__Q29daAlink_c14hsChainShape_cFv */ #pragma push #pragma optimization_level 0 @@ -11,6 +26,33 @@ extern "C" asm void draw__Q29daAlink_c14hsChainShape_cFv() { /* 801083C8-8010859C 102D08 01D4+00 1/1 0/0 0/0 .text * hookshotAtHitCallBack__9daAlink_cFP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */ +// matches with literals +#ifdef NONMATCHING +void daAlink_c::hookshotAtHitCallBack(dCcD_GObjInf* i_atObjInf, fopAc_ac_c* i_tgActor, + dCcD_GObjInf* i_tgObjInf) { + if (i_tgActor != NULL && fopAcM_IsActor(i_tgActor) && !i_tgObjInf->ChkTgHookshotThrough()) { + cXyz* hit_pos_p = i_atObjInf->GetAtHitPosP(); + f32 dist_to_hitpos = getHsChainTopPos().abs(*hit_pos_p); + + if (dist_to_hitpos < mSearchBallScale) { + mSearchBallScale = dist_to_hitpos; + + if (checkHookshotWait()) { + if (fopAcM_checkStatus(i_tgActor, 0x280000)) { + mHookTargetAcKeep.setData(i_tgActor); + } else { + field_0x3494 = 1.0f; + } + } else if (!i_tgObjInf->ChkTgShield()) { + mHookTargetAcKeep.setData(i_tgActor); + field_0x381c = *i_atObjInf->GetAtHitPosP(); + } else { + field_0x3494 = 1.0f; + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -20,12 +62,13 @@ asm void daAlink_c::hookshotAtHitCallBack(dCcD_GObjInf* param_0, fopAc_ac_c* par #include "asm/d/a/d_a_alink/hookshotAtHitCallBack__9daAlink_cFP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf.s" } #pragma pop +#endif /* 8010859C-801085BC 102EDC 0020+00 1/1 0/0 0/0 .text * daAlink_hookshotAtHitCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */ -static void daAlink_hookshotAtHitCallBack(fopAc_ac_c* player, dCcD_GObjInf* param_1, - fopAc_ac_c* param_2, dCcD_GObjInf* param_3) { - ((daAlink_c*)player)->hookshotAtHitCallBack(param_1, param_2, param_3); +static void daAlink_hookshotAtHitCallBack(fopAc_ac_c* i_atActor, dCcD_GObjInf* i_atObjInf, + fopAc_ac_c* i_tgActor, dCcD_GObjInf* i_tgObjInf) { + static_cast(i_atActor)->hookshotAtHitCallBack(i_atObjInf, i_tgActor, i_tgObjInf); } /* 801085BC-80108600 102EFC 0044+00 1/0 0/0 0/0 .text getHookshotTopPos__9daAlink_cFv */ @@ -40,29 +83,30 @@ cXyz* daAlink_c::getHookshotTopPos() { /* 80108600-80108668 102F40 0068+00 1/0 0/0 0/0 .text checkHookshotReturnMode__9daAlink_cCFv */ bool daAlink_c::checkHookshotReturnMode() const { return checkHookshotItem(mEquipItem) && - (mItemMode == 4 || mItemMode == 5 || mItemMode == 6); + (mItemMode == HS_MODE_FLY_e || mItemMode == 5 || mItemMode == HS_MODE_RETURN_e); } /* 80108668-801086DC 102FA8 0074+00 1/0 0/0 0/0 .text checkHookshotShootReturnMode__9daAlink_cCFv */ bool daAlink_c::checkHookshotShootReturnMode() const { - return (checkHookshotItem(mEquipItem) && mItemMode == 3) || checkHookshotReturnMode(); + return (checkHookshotItem(mEquipItem) && mItemMode == HS_MODE_SHOOT_e) || + checkHookshotReturnMode(); } /* 801086DC-8010871C 10301C 0040+00 6/6 0/0 0/0 .text resetHookshotMode__9daAlink_cFv */ void daAlink_c::resetHookshotMode() { - mItemMode = 0; + mItemMode = HS_MODE_NONE_e; initLockAt(); mSearchBallScale = FLT_MAX; } /* 8010871C-80108784 10305C 0068+00 0/0 0/0 1/1 .text * setEnemyBombHookshot__9daAlink_cFP10fopAc_ac_c */ -bool daAlink_c::setEnemyBombHookshot(fopAc_ac_c* actor) { - if (field_0x284c.getActor() != NULL) { +bool daAlink_c::setEnemyBombHookshot(fopAc_ac_c* i_actor) { + if (mHookTargetAcKeep.getActor() != NULL) { cancelHookshotCarry(); - field_0x284c.setData(actor); - fopAcM_setHookCarryNow(actor); + mHookTargetAcKeep.setData(i_actor); + fopAcM_setHookCarryNow(i_actor); return true; } return false; @@ -75,10 +119,10 @@ bool daAlink_c::checkLv7BossRoom() { /* 801087B0-80108828 1030F0 0078+00 6/6 0/0 0/0 .text * checkHookshotStickBG__9daAlink_cFR13cBgS_PolyInfo */ -bool daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& poly) { - if (dComIfG_Bgsp().ChkPolyHSStick(poly)) { - dBgW_Base* bgw = dComIfG_Bgsp().GetBgWBasePointer(poly); - if (bgw != NULL && bgw->ChkPushPullOk()) { +BOOL daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& i_poly) { + if (dComIfG_Bgsp().ChkPolyHSStick(i_poly)) { + dBgW_Base* bgw_p = dComIfG_Bgsp().GetBgWBasePointer(i_poly); + if (bgw_p != NULL && bgw_p->ChkPushPullOk()) { return true; } } @@ -89,9 +133,9 @@ bool daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& poly) { /* 80108828-80108864 103168 003C+00 4/4 0/0 0/0 .text cancelHookshotCarry__9daAlink_cFv */ void daAlink_c::cancelHookshotCarry() { - if (field_0x284c.getActor() != NULL) { - fopAcM_cancelHookCarryNow(field_0x284c.getActor()); - field_0x284c.clearData(); + if (mHookTargetAcKeep.getActor() != NULL) { + fopAcM_cancelHookCarryNow(mHookTargetAcKeep.getActor()); + mHookTargetAcKeep.clearData(); } } @@ -102,8 +146,8 @@ void daAlink_c::changeHookshotDrawModel() { mHeldItemModel = field_0x0710; field_0x0710 = old_item; - J3DModel* old_item2 = field_0x070c; - field_0x070c = field_0x0714; + J3DModel* old_item2 = mpHookTipModel; + mpHookTipModel = field_0x0714; field_0x0714 = old_item2; } } @@ -150,7 +194,7 @@ BOOL daAlink_c::checkBossOctaIealRoom() { /* 80108A18-80108A3C 103358 0024+00 19/19 0/0 0/0 .text checkHookshotWait__9daAlink_cCFv */ BOOL daAlink_c::checkHookshotWait() const { - return mItemMode == 0 || mItemMode == 1; + return mItemMode == HS_MODE_NONE_e || mItemMode == HS_MODE_READY_e; } /* 80108A3C-80108A90 10337C 0054+00 1/1 0/0 0/0 .text setHookshotCatchNow__9daAlink_cFv @@ -174,20 +218,23 @@ asm void daAlink_c::setHookshotCatchNow() { /* 80108A90-80108B34 1033D0 00A4+00 1/0 0/0 0/0 .text setHookshotCarryOffset__9daAlink_cFUiPC4cXyz */ -bool daAlink_c::setHookshotCarryOffset(unsigned int actorID, cXyz const* offset) { +bool daAlink_c::setHookshotCarryOffset(unsigned int i_carryActorID, cXyz const* i_posOffset) { if (i_dComIfGp_checkPlayerStatus1(0, 0x10000)) { - fopAc_ac_c* carryActor = mCargoCarryAcKeep.getActor(); + fopAc_ac_c* carryActor_p = mCargoCarryAcKeep.getActor(); - if (carryActor != NULL && fopAcM_checkHookCarryNow(carryActor) && - actorID == mCargoCarryAcKeep.getID()) { - field_0x37c8 = *offset; + if (carryActor_p != NULL && fopAcM_checkHookCarryNow(carryActor_p) && + i_carryActorID == mCargoCarryAcKeep.getID()) + { + field_0x37c8 = *i_posOffset; return true; } } - fopAc_ac_c* actor = field_0x284c.getActor(); - if (actor != NULL && fopAcM_checkHookCarryNow(actor) && actorID == field_0x284c.getID()) { - mIronBallCenterPos = *offset; + fopAc_ac_c* hookTargetAc_p = mHookTargetAcKeep.getActor(); + if (hookTargetAc_p != NULL && fopAcM_checkHookCarryNow(hookTargetAc_p) && + i_carryActorID == mHookTargetAcKeep.getID()) + { + mIronBallCenterPos = *i_posOffset; return true; } @@ -199,30 +246,30 @@ void daAlink_c::setHookshotModel() { J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(0x17E); JKRHeap* heap = setItemHeap(); - field_0x730.init(bck, 0, 2, lit_6040, 0, -1, false); + mItemBck.init(bck, 0, 2, lit_6040, 0, -1, false); - J3DModelData* heldItem_modelData = loadAramBmd(0x316, 0x5C00); - mHeldItemModel = initModel(heldItem_modelData, 0x80000, 0); + J3DModelData* hookModelData = loadAramBmd(0x316, 0x5C00); + mHeldItemModel = initModel(hookModelData, 0x80000, 0); - J3DModelData* modelData = loadAramBmd(0x318, 0x3800); - field_0x070c = initModel(modelData, 0x80000, 0); + J3DModelData* hookTipModelData = loadAramBmd(0x318, 0x3800); + mpHookTipModel = initModel(hookTipModelData, 0x80000, 0); field_0x0710 = initModel(mHeldItemModel->getModelData(), 0x80000, 0); - field_0x0714 = initModel(field_0x070c->getModelData(), 0x80000, 0); + field_0x0714 = initModel(mpHookTipModel->getModelData(), 0x80000, 0); - field_0x0768 = loadAramBmd(0x317, 0x1000); - field_0x770 = new hsChainShape_c(); - field_0x076c = new Z2SoundObjSimple(); + mpHookKusariModelData = loadAramBmd(0x317, 0x1000); + mpHookChain = new hsChainShape_c(); + mpHookSound = new Z2SoundObjSimple(); mpHookshotLinChk = new dBgS_ObjLinChk(); mpHookshotLinChk->OffFullGrp(); mpHookshotLinChk->OnWaterGrp(); J3DAnmTransform* bck2 = (J3DAnmTransform*)loadAram(0x17F, 0x800); - field_0x74C.init(bck2, 0, 2, lit_6040, 0, -1, false); + mHookTipBck.init(bck2, 0, 2, lit_6040, 0, -1, false); mDoExt_setCurrentHeap(heap); resetHookshotMode(); - field_0x770->setUserArea((u32)this); + mpHookChain->setUserArea((u32)this); field_0x2f94 = 1; if (mEquipItem == W_HOOKSHOT) { field_0x2f95 = 6; @@ -235,16 +282,60 @@ void daAlink_c::setHookshotModel() { mAtCps[0].OffAtNoHitMark(); mAtCps[0].SetAtAtp(0); mAtCps[0].SetR(lit_7808); - mAtCps[0].SetAtSe(8); + mAtCps[0].SetAtSe(dCcD_SE_HOOKSHOT_STICK); mAtCps[0].SetAtType(AT_TYPE_HOOKSHOT); mAtCps[0].SetAtHitMark(1); mAtCps[0].OnAtSetBit(); mAtCps[0].SetAtHitCallback(daAlink_hookshotAtHitCallBack); mAtCps[0].SetAtMtrl(0); - field_0x076c->init(&mHookshotTopPos, 1); + mpHookSound->init(&mHookshotTopPos, 1); } /* 80108DB4-80108EEC 1036F4 0138+00 6/6 0/0 0/0 .text setHookshotSight__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +void daAlink_c::setHookshotSight() { + cXyz sight_pos; + f32 length; + if (checkLv7BossRoom()) { + length = daAlinkHIO_hookshot_c0::m.mBossMaxLength; + } else { + length = daAlinkHIO_hookshot_c0::m.mMaxLength; + } + + BOOL line_cross = checkSightLine(length, &sight_pos); + + if (mHookTargetAcKeep.getActor() != NULL) { + mSight.setPos(&mHookTargetAcKeep.getActor()->mEyePos); + } else { + mSight.setPos(&sight_pos); + } + + if (mItemMode == HS_MODE_READY_e) { + mSight.onDrawFlg(); + + if ((line_cross && field_0x3494 < 0.0f && checkHookshotStickBG(mRopeLinChk)) || + mHookTargetAcKeep.getActor() != NULL) + { + mSight.onLockFlg(); + + if (mHookTargetAcKeep.getActor() != NULL && + fopAcM_GetName(mHookTargetAcKeep.getActor()) == PROC_B_DR) + { + daB_DR_c* dr_p = (daB_DR_c*)mHookTargetAcKeep.getActor(); + dr_p->onTarget(); + } + } else { + mSight.offLockFlg(); + } + } else { + mSight.offDrawFlg(); + } + + mHookTargetAcKeep.clearData(); + field_0x3494 = -1.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -253,13 +344,17 @@ asm void daAlink_c::setHookshotSight() { #include "asm/d/a/d_a_alink/setHookshotSight__9daAlink_cFv.s" } #pragma pop +#endif /* 80108EEC-80108F64 10382C 0078+00 1/1 0/0 0/0 .text cancelHookshotShot__9daAlink_cFv */ void daAlink_c::cancelHookshotShot() { if (checkHookshotItem(mEquipItem) && - (mItemMode == 3 || mItemMode == 5 || mItemMode == 4)) { - if (mProcID != PROC_HOOKSHOT_MOVE && mProcID != PROC_HOOKSHOT_FLY && mProcID != PROC_HOOKSHOT_SUBJECT) { - mItemMode = 6; + (mItemMode == HS_MODE_SHOOT_e || mItemMode == 5 || mItemMode == HS_MODE_FLY_e)) + { + if (mProcID != PROC_HOOKSHOT_MOVE && mProcID != PROC_HOOKSHOT_FLY && + mProcID != PROC_HOOKSHOT_SUBJECT) + { + mItemMode = HS_MODE_RETURN_e; } } } @@ -268,9 +363,10 @@ void daAlink_c::cancelHookshotShot() { // checkAttentionLock has weird codegen #ifdef NONMATCHING bool daAlink_c::cancelHookshotMove() { - if (mFastShotTime == 0 && mItemMode == 0) { + if (mFastShotTime == 0 && mItemMode == HS_MODE_NONE_e) { if (checkHookshotAnime() && - (mTargetedActor == NULL && !i_checkAttentionLock() || !itemButton())) { + (mTargetedActor == NULL && !i_checkAttentionLock() || !itemButton())) + { resetUpperAnime(UPPER_2, -1.0f); return 1; } @@ -305,7 +401,7 @@ void daAlink_c::setHookshotReadyMaterial() { mFallVoiceInit = 14; } else if (checkMagicArmorWearFlg()) { field_0x32cc = 0xC80; - mFallVoiceInit = 13; + mFallVoiceInit = 13; } else { field_0x32cc = 0x11C47; mFallVoiceInit = 18; @@ -332,11 +428,11 @@ int daAlink_c::initHookshotUpperAnimeSpeed(int param_0) { /* 80109170-801091E4 103AB0 0074+00 4/4 0/0 0/0 .text initHookshotReady__9daAlink_cFv */ void daAlink_c::initHookshotReady() { - mItemMode = 1; + mItemMode = HS_MODE_READY_e; f32 tmp_0 = FLOAT_LABEL(lit_6108); field_0x33e0 = tmp_0; - + dComIfGp_getVibration().StartShock(1, 1, cXyz(tmp_0, lit_6040, tmp_0)); field_0x3018 = 3; @@ -370,12 +466,12 @@ int daAlink_c::checkUpperItemActionHookshot() { mSearchBallScale = FLT_MAX; } - if (mItemMode == 1) { + if (mItemMode == HS_MODE_READY_e) { if (!itemButton() && field_0x3018 == 0 && checkReadyItem()) { mItemMode = 2; field_0x3026 = 0; field_0x3494 = lit_6041; - field_0x284c.clearData(); + mHookTargetAcKeep.clearData(); cancelLockAt(); field_0x2804 = NULL; @@ -410,7 +506,7 @@ int daAlink_c::checkUpperItemActionHookshot() { onModeFlg(1); mSpeedModifier = tmp_0; mNowAnmPackUpper[2].setRatio(tmp_0); - + setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &daAlinkHIO_hookshot_c0::m.mShootAnm); } @@ -422,7 +518,7 @@ int daAlink_c::checkUpperItemActionHookshot() { return 1; } - } else if (mItemMode == 0) { + } else if (mItemMode == HS_MODE_NONE_e) { if (i_checkModeFlg(0x400) && i_checkAttentionLock() && mTargetedActor == NULL) { resetUpperAnime(UPPER_2, lit_6109); dComIfGp_clearPlayerStatus0(0, 0x4000); @@ -432,17 +528,17 @@ int daAlink_c::checkUpperItemActionHookshot() { if (checkReadyItem() && itemButton()) { initHookshotReady(); } - } else if (mItemMode == 3) { + } else if (mItemMode == HS_MODE_SHOOT_e) { if (checkReadyItem() && itemTrigger()) { - mItemMode = 6; + mItemMode = HS_MODE_RETURN_e; } checkNextActionHookshot(); return 1; - } else if (mItemMode == 6) { + } else if (mItemMode == HS_MODE_RETURN_e) { checkNextActionHookshot(); return 1; - } else if (mItemMode == 5 || mItemMode == 4) { + } else if (mItemMode == 5 || mItemMode == HS_MODE_FLY_e) { if (field_0x3026 != 0) { field_0x3026--; setHookshotTopPosFly(); @@ -470,6 +566,51 @@ asm int daAlink_c::checkUpperItemActionHookshot() { #endif /* 801095C8-801097A0 103F08 01D8+00 7/7 0/0 0/0 .text checkNextActionHookshot__9daAlink_cFv */ +// matches with a i_checkAttentionLock fix +#ifdef NONMATCHING +int daAlink_c::checkNextActionHookshot() { + if (mProcID == PROC_HOOKSHOT_ROOF_SHOOT || mProcID == PROC_HOOKSHOT_WALL_SHOOT) { + return 0; + } + + if (mFastShotTime != 0 && checkHookshotWait()) { + mFastShotTime--; + } + + if (!checkHookshotAnime()) { + setHookshotReadyAnime(); + setFastShotTimer(); + + if (!i_checkAttentionLock()) { + field_0x2fe4 = shape_angle.y; + } + } + + if (!i_checkAttentionLock() && mFastShotTime == 0) { + if (i_checkModeFlg(0x400)) { + if (checkCanoeRide()) { + return procCanoeHookshotSubjectInit(); + } else { + return procHorseHookshotSubjectInit(); + } + } else if (i_checkModeFlg(0x40000)) { + return procSwimHookshotSubjectInit(); + } else { + return procHookshotSubjectInit(); + } + } else if (i_checkModeFlg(0x400)) { + if (checkCanoeRide()) { + return procCanoeHookshotMoveInit(); + } else { + return procHorseHookshotMoveInit(); + } + } else if (i_checkModeFlg(0x40000)) { + return procSwimHookshotMoveInit(); + } else { + return procHookshotMoveInit(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -478,9 +619,28 @@ asm int daAlink_c::checkNextActionHookshot() { #include "asm/d/a/d_a_alink/checkNextActionHookshot__9daAlink_cFv.s" } #pragma pop +#endif /* 801097A0-80109890 1040E0 00F0+00 2/2 0/0 0/0 .text setHookshotReturnEnd__9daAlink_cFv */ +#ifdef NONMATCHING +void daAlink_c::setHookshotReturnEnd() { + resetHookshotMode(); + cancelItemUseQuake(0); + + seStartOnlyReverb(Z2SE_LK_HS_WIND_UP_FIN); + + if (checkHookshotReadyAnime()) { + mNowAnmPackUpper[2].setRatio(1.0f); + field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa); + } else if (checkHookshotShootAnime()) { + setUpperAnimeBaseSpeed( + 0x18D, i_checkAttentionLock() ? daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed : 0.0f, 3.0f); + } + + mFastShotTime = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -489,13 +649,14 @@ asm void daAlink_c::setHookshotReturnEnd() { #include "asm/d/a/d_a_alink/setHookshotReturnEnd__9daAlink_cFv.s" } #pragma pop +#endif /* 80109890-80109AAC 1041D0 021C+00 3/3 0/0 0/0 .text setHookshotHangMoveBGCollect__9daAlink_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setHookshotHangMoveBGCollect() { +asm int daAlink_c::setHookshotHangMoveBGCollect() { nofralloc #include "asm/d/a/d_a_alink/setHookshotHangMoveBGCollect__9daAlink_cFv.s" } @@ -503,14 +664,28 @@ asm void daAlink_c::setHookshotHangMoveBGCollect() { /* 80109AAC-80109BDC 1043EC 0130+00 2/2 0/0 0/0 .text setHookshotTopPosFly__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setHookshotTopPosFly() { - nofralloc -#include "asm/d/a/d_a_alink/setHookshotTopPosFly__9daAlink_cFv.s" +void daAlink_c::setHookshotTopPosFly() { + fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); + + if (mItemMode == 5) { + if (targetAc_p != NULL && fopAcM_checkHookCarryNow(targetAc_p)) { + mDoMtx_stack_c::transS(targetAc_p->current.pos); + mDoMtx_stack_c::ZXYrotM(targetAc_p->shape_angle); + mDoMtx_stack_c::multVec(&mIronBallCenterPos, &mHookshotTopPos); + } else { + mItemMode = HS_MODE_RETURN_e; + } + } else if (!dComIfG_Bgsp().ChkPolySafe(mPolyInfo2) || !checkHookshotStickBG(mPolyInfo2) || + (targetAc_p != NULL && !fopAcM_checkHookCarryNow(targetAc_p))) + { + mItemMode = HS_MODE_RETURN_e; + } else if (dComIfG_Bgsp().ChkMoveBG(mPolyInfo2)) { + csXyz angle(field_0x301c, field_0x301e, 0); + dComIfG_Bgsp().MoveBgTransPos(mPolyInfo2, true, &mHookshotTopPos, NULL, &angle); + field_0x301c = angle.x; + field_0x301e = angle.y; + } } -#pragma pop /* ############################################################################################## */ /* 804256A0-804256AC 0523C0 000C+00 0/1 0/0 0/0 .bss @29722 */ @@ -520,9 +695,401 @@ static u8 lit_29722[12]; #pragma pop /* 804256AC-804256B8 0523CC 000C+00 1/2 0/0 0/0 .bss l_hookSnowSandHitScale */ -static u8 l_hookSnowSandHitScale[12]; +static Vec l_hookSnowSandHitScale; /* 80109BDC-8010B2DC 10451C 1700+00 1/1 0/0 0/0 .text setHookshotPos__9daAlink_cFv */ +// almost, just stack order +#ifdef NONMATCHING +void daAlink_c::setHookshotPos() { + mDoMtx_stack_c::copy(mpLinkModel->i_getAnmMtx(field_0x30c0)); + mDoMtx_stack_c::transM(-2.0f, 1.0f, 1.0f); + mDoMtx_stack_c::XYZrotM(cM_deg2s(5.7f), cM_deg2s(162.0f), 0); + + J3DModel* var_r27; + if (field_0x3020 == 0) { + var_r27 = mHeldItemModel; + } else { + var_r27 = field_0x0710; + } + var_r27->i_setBaseTRMtx(mDoMtx_stack_c::get()); + + mDoMtx_stack_c::copy(mpLinkModel->i_getAnmMtx(field_0x30c2)); + mDoMtx_stack_c::transM(-2.0f, 0.0f, 1.0f); + mDoMtx_stack_c::XYZrotM(cM_deg2s(-78.0f), cM_deg2s(182.0f), cM_deg2s(-99.0f)); + + J3DModel* var_r27_2; + if (field_0x3020 == 0) { + var_r27_2 = field_0x0710; + } else { + var_r27_2 = mHeldItemModel; + } + var_r27_2->i_setBaseTRMtx(mDoMtx_stack_c::get()); + + cXyz sp134; + + if (mItemMode == 2 || mItemMode == HS_MODE_SHOOT_e) { + field_0x33dc += 1.0f; + + if (field_0x33dc >= mItemBck.getBckAnm()->getFrameMax()) { + field_0x33dc -= mItemBck.getBckAnm()->getFrameMax(); + } + + field_0x33e0 = mHookTipBck.getBckAnm()->getFrameMax(); + } else if (mItemMode == HS_MODE_FLY_e || mItemMode == 5 || mItemMode == HS_MODE_RETURN_e) { + field_0x33dc -= 1.0f; + if (field_0x33dc < 0.0f) { + field_0x33dc += mItemBck.getBckAnm()->getFrameMax(); + } + + if (mItemMode == HS_MODE_RETURN_e && mHookTargetAcKeep.getActor() == NULL) { + field_0x33e0 = 0.0f; + } else { + field_0x33e0 = 14.0f; + } + } else if (mItemMode == HS_MODE_READY_e) { + if (!checkHookshotAnime() && mProcID != PROC_HOOKSHOT_WALL_SHOOT && + mProcID != PROC_HOOKSHOT_ROOF_SHOOT) + { + resetHookshotMode(); + field_0x33e0 = 0.0f; + } else { + if (field_0x33e0 < 0.1f) { + seStartOnlyReverb(Z2SE_AL_HS_OPEN); + } + + field_0x33e0 += 1.0f; + if (field_0x33e0 > mHookTipBck.getBckAnm()->getFrameMax()) { + field_0x33e0 = mHookTipBck.getBckAnm()->getFrameMax(); + } + } + } else { + field_0x33e0 = 0.0f; + } + + mItemBck.entry(field_0x0710->getModelData(), 0.0f); + field_0x0710->calc(); + + mDoMtx_multVec(mHeldItemModel->getBaseTRMtx(), &hookRoot, &mHeldItemRootPos); + mDoMtx_multVec(field_0x0710->getBaseTRMtx(), &hookRoot, &field_0x3810); + + mpHookSound->framework(0, mVoiceReverbIntensity); + + fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); + f32 return_speed; + f32 shoot_speed; + f32 length; + if (checkLv7BossRoom()) { + return_speed = daAlinkHIO_hookshot_c0::m.mBossReturnSpeed; + shoot_speed = daAlinkHIO_hookshot_c0::m.mBossShootSpeed; + length = daAlinkHIO_hookshot_c0::m.mBossMaxLength; + } else { + return_speed = daAlinkHIO_hookshot_c0::m.mReturnSpeed; + shoot_speed = daAlinkHIO_hookshot_c0::m.mShootSpeed; + length = daAlinkHIO_hookshot_c0::m.mMaxLength; + } + + if (mItemMode == HS_MODE_RETURN_e) { + if (targetAc_p != NULL) { + if (checkLv7BossRoom()) { + return_speed = daAlinkHIO_hookshot_c0::m.mBossStickReturnSpeed; + } else { + return_speed = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed; + } + } + + if (i_checkModeFlg(0x400)) { + return_speed += current.pos.abs(field_0x3798); + } + + if (field_0x3026 != 0) { + field_0x3026--; + } else if (mProcID != PROC_ELEC_DAMAGE || !checkHookshotAnime()) { + if (cLib_chasePos(&mHookshotTopPos, mHeldItemRootPos, return_speed)) { + setHookshotReturnEnd(); + } else { + cXyz sp1AC = mHookshotTopPos - mHeldItemRootPos; + field_0x301c = sp1AC.atan2sY_XZ(); + field_0x301e = sp1AC.atan2sX_Z(); + seStartOnlyReverbLevel(Z2SE_LK_HS_WIND_UP); + } + } + + if (targetAc_p != NULL) { + if (fopAcM_checkHookCarryNow(targetAc_p)) { + targetAc_p->current.pos = mHookshotTopPos - mIronBallCenterPos; + + if (mItemMode == HS_MODE_NONE_e) { + cancelHookshotCarry(); + } + } else { + mHookTargetAcKeep.clearData(); + } + } + } + + if (checkHookshotWait() || mItemMode == 2) { + csXyz* var_r28; + if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_ROOF_SHOOT) { + var_r28 = &field_0x300e; + } else { + var_r28 = &mBodyAngle; + } + + if (mProcID == PROC_HOOKSHOT_WALL_SHOOT) { + field_0x301e = field_0x300e.y; + } else { + field_0x301e = (s16)(shape_angle.y + mBodyAngle.y); + } + + if (mTargetedActor != NULL && mItemMode == 2) { + s16 var_r25 = getBodyAngleXAtnActor(0); + if (cLib_distanceAngleS(var_r25, var_r28->x) < 0x3000) { + cXyz sp1A0; + getBodyAngleXBasePos(&sp1A0); + mDoMtx_stack_c::transS(sp1A0); + mDoMtx_stack_c::ZXYrotM(var_r25, field_0x301e, 0); + mDoMtx_stack_c::XrotM(-var_r28->x); + mDoMtx_stack_c::YrotM(-field_0x301e); + mDoMtx_stack_c::transM(-sp1A0.x, -sp1A0.y, -sp1A0.z); + mDoMtx_stack_c::multVec(&mHookshotTopPos, &mHookshotTopPos); + var_r28->x = var_r25; + } + } + + field_0x301c = var_r28->x; + mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0); + mDoMtx_stack_c::multVec(&cXyz::BaseZ, &mIronBallCenterPos); + + if (mItemMode == 2) { + seStartOnlyReverb(Z2SE_LK_HS_SHOOT); + if (mTargetedActor != NULL) { + field_0x3028 = 1; + } else { + field_0x3028 = 0; + } + } else { + field_0x3828 = mHeldItemRootPos; + } + + mDoMtx_stack_c::copy(mHeldItemModel->getBaseTRMtx()); + + cXyz sp134(hookRoot); + mDoMtx_stack_c::transM(sp134); + if (mTargetedActor != NULL || mItemMode != 2) { + mDoMtx_stack_c::multVecZero(&mHookshotTopPos); + } + + if (mItemMode == 2) { + mItemMode = HS_MODE_SHOOT_e; + } + } else { + cXyz sp194(mHookshotTopPos); + + if (mItemMode != HS_MODE_RETURN_e && mItemMode == HS_MODE_SHOOT_e) { + if (mAtCps[0].ChkAtHit() && + (mHookTargetAcKeep.getActor() != NULL || field_0x3494 > 0.0f)) + { + if (mHookTargetAcKeep.getActor() != NULL) { + mHookshotTopPos = field_0x381c; + + fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); + if (targetAc_p != NULL && (targetAc_p->mStatus & 0x280000)) { + mHookTargetAcKeep.setData(targetAc_p); + mIronBallCenterPos = mHookshotTopPos - targetAc_p->current.pos; + setHookshotCatchNow(); + + if (targetAc_p->mStatus & 0x200000) { + mItemMode = 5; + field_0x316c.set(field_0x301c, field_0x301e, 0); + mDoMtx_stack_c::ZrotS(-targetAc_p->shape_angle.z); + mDoMtx_stack_c::XrotM(-targetAc_p->shape_angle.x); + mDoMtx_stack_c::YrotM(-targetAc_p->shape_angle.y); + mDoMtx_stack_c::multVecSR(&mIronBallCenterPos, &mIronBallCenterPos); + } else { + mItemMode = HS_MODE_RETURN_e; + } + + fopAcM_setHookCarryNow(targetAc_p); + } else { + mHookTargetAcKeep.clearData(); + mItemMode = HS_MODE_RETURN_e; + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + } else { + mItemMode = HS_MODE_RETURN_e; + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + } else { + if (checkChaseHookshot()) { + cXyz sp188 = mTargetedActor->mEyePos - mHookshotTopPos; + if (sp188.inprod(mIronBallCenterPos) >= 0.0f) { + mIronBallCenterPos = sp188; + mIronBallCenterPos.normalizeZP(); + field_0x301c = mIronBallCenterPos.atan2sY_XZ(); + field_0x301e = mIronBallCenterPos.atan2sX_Z(); + } + } + + mHookshotTopPos += mIronBallCenterPos * shoot_speed; + + if (i_checkModeFlg(0x400)) { + mHookshotTopPos += current.pos - field_0x3798; + } + + cXyz sp17C = mHookshotTopPos - mHeldItemRootPos; + f32 temp_f1 = sp17C.abs(); + sp17C *= 1.0f / temp_f1; + + if (temp_f1 >= length - 15.0f) { + mHookshotTopPos = mHeldItemRootPos + (sp17C * (length - 15.0f)); + mItemMode = HS_MODE_RETURN_e; + } + + cXyz sp170; + if (field_0x3828.abs2(mHeldItemRootPos) > 400.0f || + current.pos.abs2(field_0x3798) > 1.0f || shape_angle.y != field_0x2fe6) + { + field_0x3028 = 1; + } + + if (field_0x3028 != 0) { + sp170 = mHeldItemRootPos; + } else { + sp170 = field_0x3828; + } + + sp170 -= mIronBallCenterPos * 100.0f; + cXyz sp164 = mHookshotTopPos + (mIronBallCenterPos * 15.0f); + mRopeLinChk.Set(&sp170, &sp164, this); + + if (dComIfG_Bgsp().LineCross(&mRopeLinChk)) { + u32 hit_se; + + if (checkHookshotStickBG(mRopeLinChk)) { + setHookshotCatchNow(); + mItemMode = HS_MODE_FLY_e; + hit_se = Z2SE_HIT_HOOKSHOT_STICK; + + if (i_dComIfGp_checkPlayerStatus1(0, 0x2010000) != 0 && + mCargoCarryAcKeep.getActor() == NULL) + { + mPolyInfo3.SetPolyInfo(mPolyInfo2); + } else { + mPolyInfo3.ClearPi(); + } + + mPolyInfo2.SetPolyInfo(mRopeLinChk); + if (dComIfG_Bgsp().ChkMoveBG_NoDABg(mRopeLinChk)) { + fopAc_ac_c* target_ac = dComIfG_Bgsp().GetActorPointer(mRopeLinChk); + mHookTargetAcKeep.setData(target_ac); + fopAcM_setHookCarryNow(target_ac); + } + } else { + int poly_att0 = dComIfG_Bgsp().GetPolyAtt0(mRopeLinChk); + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + mItemMode = HS_MODE_RETURN_e; + hit_se = Z2SE_HIT_HOOKSHOT_REBOUND; + + cM3dGPla poly; + dComIfG_Bgsp().GetTriPla(mRopeLinChk, &poly); + + csXyz sp30; + if (poly_att0 == 0xD || poly_att0 == 3) { + u16 particle_id; + if (poly_att0 == 0xD) { + particle_id = 0x881F; + } else { + particle_id = 0x881E; + } + + sp30.set(cM_atan2s(poly.mNormal.absXZ(), poly.mNormal.y), + poly.mNormal.atan2sX_Z(), 0); + + dComIfGp_particle_setPolyColor( + particle_id, mRopeLinChk, mRopeLinChk.GetCrossP(), &mTevStr, &sp30, + (cXyz*)&l_hookSnowSandHitScale, 0, NULL, -1, NULL); + if (poly_att0 == 0xD) { + dComIfGp_particle_setPolyColor( + 0x8820, mRopeLinChk, mRopeLinChk.GetCrossP(), &mTevStr, &sp30, + (cXyz*)&l_hookSnowSandHitScale, 0, NULL, -1, NULL); + } + } else { + sp30.set(cM_atan2s(poly.mNormal.y, poly.mNormal.absXZ()), + cM_atan2s(-poly.mNormal.x, -poly.mNormal.z), 0); + i_dComIfGp_setHitMark(9, NULL, mRopeLinChk.GetCrossP(), &sp30, NULL, 0); + } + } + + mHookshotTopPos = mRopeLinChk.i_GetCross() - (mIronBallCenterPos * 15.0f); + + cM3dGPla poly; + dComIfG_Bgsp().GetTriPla(mRopeLinChk, &poly); + field_0x316c.set(cM_atan2s(poly.mNormal.y, poly.mNormal.absXZ()), + cM_atan2s(-poly.mNormal.x, -poly.mNormal.z), 0); + + mZ2Link.startHitItemSE(hit_se, dKy_pol_sound_get(&mRopeLinChk), mpHookSound, + -1.0f); + } else { + seStartOnlyReverbLevel(Z2SE_LK_HS_CHAIN); + } + } + } + + mDoMtx_stack_c::transS(mHookshotTopPos); + mDoMtx_stack_c::ZXYrotM(field_0x301c, field_0x301e, 0); + mpHookshotLinChk->Set(&sp194, &mHookshotTopPos, this); + + if (dComIfG_Bgsp().LineCross(mpHookshotLinChk) && + dComIfG_Bgsp().GetPolyAtt0(*mpHookshotLinChk) != 6) + { + fopKyM_createWpillar(mpHookshotLinChk->GetCrossP(), 0.5f, 0); + mDoAud_seStart(Z2SE_CM_BODYFALL_WATER_S, mpHookshotLinChk->GetCrossP(), 0, + mVoiceReverbIntensity); + } + } + + mHookTipBck.entry(mpHookTipModel->getModelData(), field_0x33e0); + mpHookTipModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); + mpHookTipModel->calc(); + + f32 bck_frame; + if (i_dComIfGp_checkPlayerStatus1(0, 0x10000)) { + mDoMtx_stack_c::transS(mIronBallBgChkPos); + mDoMtx_stack_c::ZXYrotM(-0x4000, field_0x3022, 0); + bck_frame = 14.0f; + } else if (i_dComIfGp_checkPlayerStatus1(0, 0x2000000)) { + mDoMtx_stack_c::transS(mIronBallBgChkPos); + mDoMtx_stack_c::ZXYrotM(0, field_0x3022, 0); + bck_frame = 14.0f; + } else { + if (field_0x3024 != 0) { + cLib_chasePos(&mIronBallBgChkPos, field_0x3810, 2.0f * return_speed); + cXyz sp158 = mIronBallBgChkPos - field_0x3810; + + if (sp158.abs2() < 1.0f) { + field_0x3024 = 0; + } else { + mDoMtx_stack_c::transS(mIronBallBgChkPos); + mDoMtx_stack_c::ZXYrotM(sp158.atan2sY_XZ(), sp158.atan2sX_Z(), 0); + } + } + + if (field_0x3024 == 0) { + mDoMtx_stack_c::copy(field_0x0710->getBaseTRMtx()); + + cXyz sp5C(hookRoot); + mDoMtx_stack_c::transM(sp5C); + + mIronBallBgChkPos = field_0x3810; + } + bck_frame = 0.0f; + } + + mHookTipBck.entry(field_0x0714->getModelData(), bck_frame); + field_0x0714->i_setBaseTRMtx(mDoMtx_stack_c::get()); + field_0x0714->calc(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -531,28 +1098,111 @@ asm void daAlink_c::setHookshotPos() { #include "asm/d/a/d_a_alink/setHookshotPos__9daAlink_cFv.s" } #pragma pop +#endif /* 8010B2DC-8010B35C 105C1C 0080+00 2/2 0/0 0/0 .text setHookshotRoofWaitAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setHookshotRoofWaitAnime() { - nofralloc -#include "asm/d/a/d_a_alink/setHookshotRoofWaitAnime__9daAlink_cFv.s" +void daAlink_c::setHookshotRoofWaitAnime() { + daAlink_ANM anm; + if (checkHookshotRoofLv7Boss()) { + if (field_0x3020 == 0) { + anm = ANM_DRAGON_HANG_RIGHT; + } else { + anm = ANM_DRAGON_HANG_LEFT; + } + } else { + if (field_0x3020 == 0) { + anm = ANM_HOOKSHOT_HANG_RIGHT; + } else { + anm = ANM_HOOKSHOT_HANG_LEFT; + } + + onModeFlg(0x100); + } + + setSingleAnimeBaseMorf(anm, lit_7307); } -#pragma pop /* 8010B35C-8010B3AC 105C9C 0050+00 2/2 0/0 0/0 .text setHookshotWallWaitAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setHookshotWallWaitAnime() { - nofralloc -#include "asm/d/a/d_a_alink/setHookshotWallWaitAnime__9daAlink_cFv.s" +void daAlink_c::setHookshotWallWaitAnime() { + daAlink_ANM anm; + if (field_0x3020 == 0) { + anm = ANM_HOOKSHOT_WALL_RIGHT; + } else { + anm = ANM_HOOKSHOT_WALL_LEFT; + } + + setSingleAnimeBaseMorf(anm, lit_7307); + onModeFlg(0x100); } -#pragma pop /* 8010B3AC-8010B644 105CEC 0298+00 2/2 0/0 0/0 .text hookshotRoofTurn__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +void daAlink_c::hookshotRoofTurn() { + BOOL play_sound = false; + if (!i_dComIfGp_checkPlayerStatus0(0, 0x2000)) { + f32 max_rise_y = (mIronBallBgChkPos.y + 15.0f) - 1.5f; + f32 min_descend_y = mIronBallBgChkPos.y - daAlinkHIO_hookshot_c0::m.mMaxLength; + + if (checkInputOnR()) { + int stick_direction = getDirectionFromAngle(mStickAngle); + int angle = (int)(1024.0f * field_0x33ac * field_0x33ac); + + if (stick_direction == DIR_LEFT) { + shape_angle.y += angle; + } else if (stick_direction == DIR_RIGHT) { + shape_angle.y -= angle; + } + current.angle.y = shape_angle.y; + + if (stick_direction == DIR_FORWARD) { + current.pos.y += daAlinkHIO_hookshot_c0::m.mRoofHangRiseSpeed * field_0x33a8; + if (current.pos.y > max_rise_y) { + current.pos.y = max_rise_y; + } else { + seStartOnlyReverbLevel(Z2SE_AL_HS_HANGING_UP); + play_sound = true; + } + } else if (stick_direction == DIR_BACKWARD) { + f32 descend_speed = daAlinkHIO_hookshot_c0::m.mRoofHangDecendSpeed * field_0x33ac; + if (checkBootsOrArmorHeavy()) { + descend_speed *= 1.5f; + } + current.pos.y -= descend_speed; + + if (min_descend_y > current.pos.y) { + current.pos.y = min_descend_y; + } else { + seStartOnlyReverbLevel(Z2SE_AL_HS_HANGING_DOWN); + play_sound = true; + } + } + } + + u8 status_dir = 0; + if (current.pos.y < max_rise_y) { + status_dir |= 8; + } + + if (current.pos.y > min_descend_y) { + status_dir |= 2; + } + + if (!checkEventRun()) { + dComIfGp_set3DStatusForce(0x78, status_dir, 0); + } + } + + if (play_sound) { + if (!i_checkNoResetFlg3(FLG3_UNK_4)) { + dComIfGp_getVibration().StartQuake(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + i_onNoResetFlg3(FLG3_UNK_4); + } + } else { + cancelItemUseQuake(0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -561,60 +1211,135 @@ asm void daAlink_c::hookshotRoofTurn() { #include "asm/d/a/d_a_alink/hookshotRoofTurn__9daAlink_cFv.s" } #pragma pop +#endif /* 8010B644-8010B720 105F84 00DC+00 3/3 0/0 0/0 .text * initHookshotRoofWaitActor__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::initHookshotRoofWaitActor(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/initHookshotRoofWaitActor__9daAlink_cFP10fopAc_ac_c.s" +void daAlink_c::initHookshotRoofWaitActor(fopAc_ac_c* i_actor) { + if (i_actor != NULL) { + mCargoCarryAcKeep.setData(i_actor); + field_0x37c8 = mIronBallBgChkPos - i_actor->current.pos; + + mDoMtx_stack_c::XrotS(-i_actor->shape_angle.x); + mDoMtx_stack_c::YrotM(-i_actor->shape_angle.y); + mDoMtx_stack_c::multVecSR(&field_0x37c8, &field_0x37c8); + field_0x3008 = i_actor->shape_angle.y; + + fopAcM_setHookCarryNow(i_actor); + field_0x300e.y = 1; + } else { + mCargoCarryAcKeep.clearData(); + field_0x300e.y = 0; + } } -#pragma pop /* 8010B720-8010B84C 106060 012C+00 2/2 0/0 0/0 .text checkNextHookPoint__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkNextHookPoint() { - nofralloc -#include "asm/d/a/d_a_alink/checkNextHookPoint__9daAlink_cFv.s" +int daAlink_c::checkNextHookPoint() { + if (field_0x3026 != 0) { + fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); + + if ((mItemMode == 5 && targetAc_p != NULL && fopAcM_checkHookCarryNow(targetAc_p)) || + (mItemMode == HS_MODE_FLY_e && dComIfG_Bgsp().ChkPolySafe(mPolyInfo2) && + checkHookshotStickBG(mPolyInfo2) && + (targetAc_p == NULL || fopAcM_checkHookCarryNow(targetAc_p)))) + { + field_0x3026 = 0; + return procHookshotFlyInit(); + } + } else if (i_dComIfGp_checkPlayerStatus1(0, 0x10000) && checkHookshotRoofLv7Boss()) { + if (!fopAcM_checkHookCarryNow(mCargoCarryAcKeep.getActor())) { + field_0x3102 = shape_angle.y; + return procCoLargeDamageInit(-6, 1, 0, 0, NULL, 0); + } + } + + return procFallInit(1, lit_7808); } -#pragma pop /* 8010B84C-8010B96C 10618C 0120+00 2/2 0/0 0/0 .text checkLandHookshotHang__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkLandHookshotHang() { - nofralloc -#include "asm/d/a/d_a_alink/checkLandHookshotHang__9daAlink_cFv.s" +int daAlink_c::checkLandHookshotHang() { + mLinkGndChk.SetPos(&field_0x3834); + + f32 ground_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + if (!setHookshotHangMoveBGCollect() || ground_cross > mLeftFootPos.y || + ground_cross > mRightFootPos.y) + { + return checkNextHookPoint(); + } + + if (mProcID != PROC_HOOKSHOT_ROOF_BOOTS && + ((mProcID != PROC_HOOKSHOT_ROOF_SHOOT && mProcID != PROC_HOOKSHOT_WALL_SHOOT) || + checkHookshotWait()) && + (!checkHookshotRoofLv7Boss() || !i_checkEquipHeavyBoots()) && + checkSetItemTrigger(HVY_BOOTS)) + { + if (i_dComIfGp_checkPlayerStatus1(0, 0x10000)) { + return procHookshotRoofBootsInit(mCargoCarryAcKeep.getActor()); + } + setHeavyBoots(1); + } + + return 0; } -#pragma pop /* 8010B96C-8010BA6C 1062AC 0100+00 3/3 0/0 0/0 .text commonHookshotRoofWait__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::commonHookshotRoofWait() { - nofralloc -#include "asm/d/a/d_a_alink/commonHookshotRoofWait__9daAlink_cFv.s" +int daAlink_c::commonHookshotRoofWait() { + setJumpMode(); + if (field_0x300e.y != 0) { + mCargoCarryAcKeep.setActor(); + fopAc_ac_c* carryAc_p = mCargoCarryAcKeep.getActor(); + + if (carryAc_p == NULL || !fopAcM_checkHookCarryNow(carryAc_p)) { + return checkNextHookPoint(); + } + } + + if (mLinkAcch.ChkWallHit()) { + return checkNextHookPoint(); + } + + cXyz start_pos = field_0x3810 + (current.pos - field_0x3798); + mRopeLinChk.Set(&start_pos, &mIronBallBgChkPos, this); + + if (dComIfG_Bgsp().LineCross(&mRopeLinChk)) { + return checkNextHookPoint(); + } + + if (checkLandHookshotHang()) { + return 1; + } + + return 0; } -#pragma pop /* 8010BA6C-8010BAA8 1063AC 003C+00 2/2 0/0 0/0 .text commonHookshotWallWait__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::commonHookshotWallWait() { - nofralloc -#include "asm/d/a/d_a_alink/commonHookshotWallWait__9daAlink_cFv.s" +int daAlink_c::commonHookshotWallWait() { + setJumpMode(); + return checkLandHookshotHang() ? TRUE : FALSE; } -#pragma pop /* 8010BAA8-8010BB48 1063E8 00A0+00 1/1 0/0 0/0 .text procHookshotSubjectInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotSubjectInit() { + if (!commonProcInitNotSameProc(PROC_HOOKSHOT_SUBJECT)) { + return 0; + } + + mNormalSpeed = 0.0f; + + if (initHookshotUpperAnimeSpeed(1)) { + setSingleAnimeBaseSpeed(ANM_ATN_WAIT_LEFT, 0.0f, + daAlinkHIO_hookshot_c0::m.mStartInterpolation); + } + + dComIfGp_setPlayerStatus0(0, 0x4000); + current.angle.y = shape_angle.y; + setHookshotReadyMaterial(); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -623,41 +1348,128 @@ asm int daAlink_c::procHookshotSubjectInit() { #include "asm/d/a/d_a_alink/procHookshotSubjectInit__9daAlink_cFv.s" } #pragma pop +#endif /* 8010BB48-8010BC08 106488 00C0+00 1/0 0/0 0/0 .text procHookshotSubject__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHookshotSubject() { - nofralloc -#include "asm/d/a/d_a_alink/procHookshotSubject__9daAlink_cFv.s" +int daAlink_c::procHookshotSubject() { + if (checkHookshotWait()) { + setDoStatus(0x12); + } + + setShapeAngleToAtnActor(0); + mSight.offDrawFlg(); + + if (!checkNextAction(0)) { + if (checkHookshotWait()) { + if (setBodyAngleToCamera()) { + setHookshotSight(); + } + + dComIfGp_clearPlayerStatus0(0, 0x40000); + } else { + dComIfGp_setPlayerStatus0(0, 0x40000); + } + } + + return 1; } -#pragma pop /* 8010BC08-8010BCA4 106548 009C+00 1/1 0/0 0/0 .text procHookshotMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHookshotMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHookshotMoveInit__9daAlink_cFv.s" +int daAlink_c::procHookshotMoveInit() { + if (!commonProcInitNotSameProc(PROC_HOOKSHOT_MOVE)) { + return 0; + } + + if (checkZeroSpeedF()) { + onModeFlg(1); + } + + if (initHookshotUpperAnimeSpeed(0)) { + setBlendAtnMoveAnime(daAlinkHIO_hookshot_c0::m.mStartInterpolation); + } + + dComIfGp_setPlayerStatus0(0, 0x4000); + return 1; } -#pragma pop /* 8010BCA4-8010BD90 1065E4 00EC+00 1/0 0/0 0/0 .text procHookshotMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHookshotMove() { - nofralloc -#include "asm/d/a/d_a_alink/procHookshotMove__9daAlink_cFv.s" +int daAlink_c::procHookshotMove() { + cancelHookshotMove(); + + if (!checkNextAction(0)) { + f32 blend = lit_6041; + + if (checkZeroSpeedF()) { + onModeFlg(1); + + if (field_0x2f98 != 2) { + field_0x2f98 = 2; + blend = daAlinkHIO_basic_c0::m.mAnmBlendFactor; + } + } else { + offModeFlg(1); + } + + if (checkHookshotWait()) { + setBlendAtnMoveAnime(blend); + setBodyAngleXReadyAnime(0); + } else if (checkChaseHookshot()) { + setBodyAngleXReadyAnime(0); + } + } + + return 1; } -#pragma pop /* 8010BD90-8010BEF0 1066D0 0160+00 2/2 0/0 0/0 .text procHookshotFlyInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotFlyInit() { + commonProcInit(PROC_HOOKSHOT_FLY); + + if (!i_checkNoResetFlg0(FLG0_UNK_100)) { + i_onNoResetFlg0(FLG0_UNDERWATER); + } + + daAlink_ANM anm; + if (field_0x3020 == 0) { + anm = ANM_HOOKSHOT_FLY_LEFT; + } else { + anm = ANM_HOOKSHOT_FLY_RIGHT; + } + + setSingleAnimeBase(anm); + mBodyAngle.x = 0; + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + + dComIfGp_clearPlayerStatus0(0, 0x40000); + dComIfGp_setPlayerStatus1(0, 0x10); + + voiceStart(Z2SE_AL_V_JUMP_L); + + field_0x37c8 = field_0x3798; + current.pos = field_0x3834; + field_0x37d4 = cXyz::Zero; + + shape_angle.x = field_0x301c; + shape_angle.y = field_0x301e; + current.angle.y = shape_angle.y; + + field_0x3008 = 1; + field_0x300a = 4; + field_0x2f99 = 0x50; + field_0x300c = mItemMode; + field_0x300e.z = 0; + + procHookshotFly(); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -666,8 +1478,151 @@ asm int daAlink_c::procHookshotFlyInit() { #include "asm/d/a/d_a_alink/procHookshotFlyInit__9daAlink_cFv.s" } #pragma pop +#endif /* 8010BEF0-8010C830 106830 0940+00 2/1 0/0 0/0 .text procHookshotFly__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotFly() { + fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); + + s16 targetAc_name; + if (targetAc_p != NULL) { + targetAc_name = fopAcM_GetName(targetAc_p); + } else { + targetAc_name = PROC_ALINK; + } + + BOOL var_r29 = 0; + if (targetAc_name == PROC_Obj_SwHang) { + int swhang_type = static_cast(targetAc_p)->getType(); + if (swhang_type == 3 || swhang_type == 4) { + var_r29 = 1; + } + } + + s16 temp_r24 = field_0x301e; + cXyz spAC(mHookshotTopPos); + setHookshotTopPosFly(); + + field_0x37d4 = mHookshotTopPos - mHeldItemRootPos; + if (field_0x3008 != 0 && cLib_distanceAngleS(field_0x37d4.atan2sX_Z(), temp_r24) > 0x4000) { + setHookshotReturnEnd(); + } else { + field_0x3008 = 0; + f32 temp_f31 = field_0x37d4.abs(); + f32 temp_f30 = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed + spAC.abs(mHookshotTopPos); + + if (temp_f31 < temp_f30 || field_0x300a == 0) { + setHookshotReturnEnd(); + } else { + field_0x37d4 *= temp_f30 / temp_f31; + seStartOnlyReverbLevel(Z2SE_LK_HS_WIND_UP); + if (temp_f31 < temp_f30 * 1.5f) { + field_0x300a--; + } + } + } + + current.pos += field_0x37d4; + if (checkSetItemTrigger(W_HOOKSHOT) != 0) { + field_0x300e.z = 1; + } else if (field_0x300e.z != 0 && !itemButton()) { + field_0x300e.z = 0; + } + + if (mItemMode != 5 && mItemMode != HS_MODE_FLY_e) { + if (targetAc_name == PROC_B_OB || + (targetAc_name == PROC_B_DR && static_cast(targetAc_p)->isBack())) + { + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + return procBossBodyHangInit(targetAc_p); + } else { + cM3dGPla poly; + BOOL var_r28 = 0; + BOOL var_r27 = 0; + BOOL force_fall = checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 4; + + if (field_0x300c == 4 && dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) { + var_r28 = dComIfG_Bgsp().GetTriPla(mPolyInfo2, &poly); + var_r27 = cBgW_CheckBRoof(poly.mNormal.y); + if (!checkHookshotStickBG(mPolyInfo2)) { + var_r28 = 0; + } + } + + if (!force_fall && !mLinkAcch.ChkGroundHit() && !var_r27 && checkFrontWallTypeAction()) + { + voiceStart(Z2SE_AL_V_CLIMB); + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + return 1; + } else { + cXyz spA0 = current.pos - field_0x37c8; + if (commonLineCheck(&field_0x37c8, ¤t.pos)) { + current.pos = mLinkLinChk.i_GetCross(); + + spA0.y = 0.0f; + spA0.normalizeZP(); + + current.pos.x -= spA0.x * 35.0f; + current.pos.z -= spA0.z * 35.0f; + } + + if (var_r28 && !var_r27) { + cXyz sp94(mHookshotTopPos.x + poly.mNormal.x * 35.0f, mHookshotTopPos.y + 5.0f, + mHookshotTopPos.z + poly.mNormal.z * 35.0f); + mLinkGndChk.SetPos(&sp94); + + if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) > mHookshotTopPos.y - 150.0f || + force_fall) + { + current.pos.x = sp94.x; + current.pos.z = sp94.z; + force_fall = true; + } + } + + setJumpMode(); + if (mLinkAcch.ChkGroundHit()) { + checkNextAction(0); + } else if (force_fall) { + procFallInit(1, 5.0f); + field_0x2f99 = 0x70; + } else if (targetAc_name == PROC_E_PH || targetAc_name == PROC_B_DR || var_r29) { + procHookshotRoofWaitInit(1, targetAc_p, field_0x300e.z); + } else if (var_r28 && dComIfG_Bgsp().GetMonkeyBarsCode(mPolyInfo2)) { + cXyz sp88; + mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0); + mDoMtx_stack_c::multVec(&cXyz::BaseZ, &sp88); + sp88 = mHookshotTopPos + (sp88 * 15.0f); + + procRoofHangStartInit(mPolyInfo2, sp88, 0); + } else if (var_r28 && var_r27) { + procHookshotRoofWaitInit(1, NULL, field_0x300e.z); + } else if (var_r28 && field_0x2f91 != 3 && fabsf(poly.mNormal.y) < 0.05f) { + procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), field_0x300e.z); + } else { + procFallInit(1, 5.0f); + field_0x2f99 = 0x70; + } + + voiceStart(Z2SE_AL_V_CLIMB); + if (mProcID != PROC_FALL) { + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + } + } + } else { + cXyz sp7C = mHookshotTopPos - current.pos; + cLib_addCalcAngleS(&shape_angle.x, sp7C.atan2sY_XZ(), 2, 0x2000, 0x800); + cLib_addCalcAngleS(&shape_angle.y, sp7C.atan2sX_Z(), 2, 0x2000, 0x800); + current.angle.y = shape_angle.y; + field_0x37c8 = field_0x3798; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -676,9 +1631,61 @@ asm int daAlink_c::procHookshotFly() { #include "asm/d/a/d_a_alink/procHookshotFly__9daAlink_cFv.s" } #pragma pop +#endif /* 8010C830-8010C9F4 107170 01C4+00 4/4 0/0 0/0 .text * procHookshotRoofWaitInit__9daAlink_cFiP10fopAc_ac_ci */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int param_2) { + commonProcInit(PROC_HOOKSHOT_ROOF_WAIT); + + if (param_0) { + cXyz sp28; + mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0); + mDoMtx_stack_c::multVec(&cXyz::BaseZ, &sp28); + current.pos = mHookshotTopPos + (sp28 * 15.0f); + current.pos.y -= 1.5f; + + field_0x3022 = field_0x301e; + mIronBallBgChkPos.set(current.pos.x, current.pos.y - 15.0f, current.pos.z); + + daAlink_ANM anm; + if (field_0x3020 == 0) { + field_0x3020 = 1; + anm = ANM_HOOKSHOT_HANG_END_LEFT; + } else { + field_0x3020 = 0; + anm = ANM_HOOKSHOT_HANG_END_RIGHT; + } + + field_0x300c = 0; + setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mRoofHangAnm); + } else { + setHookshotRoofWaitAnime(); + field_0x300c = 1; + } + + resetHookshotMode(); + field_0x3024 = 1; + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + current.angle.y = shape_angle.y; + + initHookshotRoofWaitActor(param_1); + if (param_0) { + setHookshotHangMoveBGCollect(); + } + + field_0x2b98 = 6.5f; + field_0x300e.z = param_2; + + dComIfGp_setPlayerStatus1(0, 0x10000); + field_0x814.SetWeight(255); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -687,9 +1694,72 @@ asm int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, in #include "asm/d/a/d_a_alink/procHookshotRoofWaitInit__9daAlink_cFiP10fopAc_ac_ci.s" } #pragma pop +#endif /* 8010C9F4-8010CC80 107334 028C+00 1/0 0/0 0/0 .text procHookshotRoofWait__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotRoofWait() { + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x80)) { + if (checkSubjectEnd(1)) { + dComIfGp_clearPlayerStatus0(0, 0x2000); + mBodyAngle.y = 0; + mBodyAngle.x = 0; + offModeFlg(0x60000000); + } else if (i_dComIfGp_checkPlayerStatus0(0, 0x2000)) { + setBodyAngleToCamera(); + } + } else if (dCam_getBody()->ChangeModeOK(4)) { + i_onResetFlg0(RFLG0_UNK_4000000); + + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x1000)) { + field_0x310c = shape_angle.y; + field_0x310a = 0; + setSubjectMode(); + onModeFlg(0x60000000); + } + } + + if (commonHookshotRoofWait()) { + return 1; + } + + if (!checkHookshotRoofLv7Boss() || !checkBootsOrArmorHeavy()) { + setDoStatusEmphasys(1); + + if (doTrigger()) { + return procFallInit(1, 5.0f); + } + } + + setShapeAngleToAtnActor(0); + + if (field_0x300c == 0) { + if (checkSetItemTrigger(W_HOOKSHOT)) { + field_0x300e.z = 1; + } else if (field_0x300e.z != 0 && !itemButton()) { + field_0x300e.z = 0; + } + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + if (frameCtrl_p->checkAnmEnd() || + ((checkInputOnR() || field_0x300e.z != 0 || checkHookshotRoofLv7Boss()) && + frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mRoofHangAnm.mCheckFrame)) + { + setHookshotRoofWaitAnime(); + field_0x300c = 1; + } + } else if (!checkHookshotRoofLv7Boss()) { + if (checkSetItemTrigger(W_HOOKSHOT) || field_0x300e.z != 0) { + return procHookshotRoofShootInit(mCargoCarryAcKeep.getActor()); + } + hookshotRoofTurn(); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -698,9 +1768,41 @@ asm int daAlink_c::procHookshotRoofWait() { #include "asm/d/a/d_a_alink/procHookshotRoofWait__9daAlink_cFv.s" } #pragma pop +#endif /* 8010CC80-8010CD60 1075C0 00E0+00 1/1 0/0 0/0 .text * procHookshotRoofShootInit__9daAlink_cFP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) { + commonProcInit(PROC_HOOKSHOT_ROOF_SHOOT); + + daAlink_ANM anm; + if (field_0x3020 == 0) { + anm = ANM_HOOKSHOT_HANG_WAIT_RIGHT; + } else { + anm = ANM_HOOKSHOT_HANG_WAIT_LEFT; + } + + setSingleAnimeBaseSpeed(anm, 1.0f, 3.0f); + setFastShotTimer(); + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + field_0x2b98 = 6.5f; + + initHookshotRoofWaitActor(param_0); + initHookshotReady(); + + dComIfGp_setPlayerStatus1(0, 0x10000); + dComIfGp_setPlayerStatus0(0, 0x4000); + + field_0x814.SetWeight(255); + field_0x300c = 0; + field_0x300e.x = mBodyAngle.x; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -709,9 +1811,75 @@ asm int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) { #include "asm/d/a/d_a_alink/procHookshotRoofShootInit__9daAlink_cFP10fopAc_ac_c.s" } #pragma pop +#endif /* 8010CD60-8010CF6C 1076A0 020C+00 1/0 0/0 0/0 .text procHookshotRoofShoot__9daAlink_cFv */ +// matches with a i_checkAttentionLock fix +#ifdef NONMATCHING +int daAlink_c::procHookshotRoofShoot() { + if (checkHookshotWait()) { + setDoStatus(0x12); + } + + if (commonHookshotRoofWait()) { + return 1; + } + + if (checkHookshotWait()) { + setShapeAngleToAtnActor(0); + } + + mSight.offDrawFlg(); + dComIfGp_clearPlayerStatus0(0, 0x40000); + + if (mFastShotTime != 0 && checkHookshotWait()) { + mFastShotTime--; + } + + if (!checkUpperItemActionHookshot()) { + mBodyAngle.x = field_0x300e.x; + + if (!i_checkAttentionLock() && mFastShotTime == 0) { + if (checkHookshotWait()) { + mUnderFrameCtrl[0].setRate(0.0f); + mUnderFrameCtrl[0].setFrame(0.0f); + getNowAnmPackUnder(UNDER_0)->setFrame(0.0f); + + if (field_0x300c != 0 && setBodyAngleToCamera()) { + setHookshotSight(); + } + } else { + dComIfGp_setPlayerStatus0(0, 0x40000); + } + + field_0x300c = 1; + } else { + if (mTargetedActor == NULL && mItemMode == HS_MODE_NONE_e) { + return procHookshotRoofWaitInit(0, mCargoCarryAcKeep.getActor(), 0); + } + + if (checkHookshotWait()) { + mUnderFrameCtrl[0].setRate(1.0f); + + if (field_0x300c == 0) { + setBodyAngleXReadyAnime(0); + hookshotRoofTurn(); + } else { + cancelItemUseQuake(0); + } + } + + field_0x300c = 0; + } + + field_0x300e.x = mBodyAngle.x; + mBodyAngle.x = 0; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -720,9 +1888,38 @@ asm int daAlink_c::procHookshotRoofShoot() { #include "asm/d/a/d_a_alink/procHookshotRoofShoot__9daAlink_cFv.s" } #pragma pop +#endif /* 8010CF6C-8010D034 1078AC 00C8+00 1/1 0/0 0/0 .text * procHookshotRoofBootsInit__9daAlink_cFP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotRoofBootsInit(fopAc_ac_c* param_0) { + commonProcInit(PROC_HOOKSHOT_ROOF_BOOTS); + + daAlink_ANM anm; + if (field_0x3020 == 0) { + anm = ANM_HOOKSHOT_HANG_RIGHT_START; + } else { + anm = ANM_HOOKSHOT_HANG_LEFT_START; + } + + setSingleAnimeBaseMorf(anm, 2.0f); + resetHookshotMode(); + field_0x3024 = 1; + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + current.angle.y = shape_angle.y; + initHookshotRoofWaitActor(param_0); + field_0x2b98 = 6.5f; + + dComIfGp_setPlayerStatus1(0, 0x10000); + + field_0x814.SetWeight(255); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -731,9 +1928,39 @@ asm int daAlink_c::procHookshotRoofBootsInit(fopAc_ac_c* param_0) { #include "asm/d/a/d_a_alink/procHookshotRoofBootsInit__9daAlink_cFP10fopAc_ac_c.s" } #pragma pop +#endif /* 8010D034-8010D174 107974 0140+00 1/0 0/0 0/0 .text procHookshotRoofBoots__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotRoofBoots() { + if (commonHookshotRoofWait()) { + return 1; + } + + if (!checkHookshotRoofLv7Boss() || !checkBootsOrArmorHeavy()) { + setDoStatusEmphasys(1); + + if (doTrigger()) { + return procFallInit(1, 5.0f); + } + } + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + if (frameCtrl_p->checkAnmEnd()) { + return procHookshotRoofWaitInit(0, mCargoCarryAcKeep.getActor(), 0); + } + + if (frameCtrl_p->checkPass(4.0f)) { + setHeavyBoots(1); + } else if (i_checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS) && frameCtrl_p->checkPass(10.0f)) { + dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -742,8 +1969,61 @@ asm int daAlink_c::procHookshotRoofBoots() { #include "asm/d/a/d_a_alink/procHookshotRoofBoots__9daAlink_cFv.s" } #pragma pop +#endif /* 8010D174-8010D38C 107AB4 0218+00 3/3 0/0 0/0 .text procHookshotWallWaitInit__9daAlink_cFisi */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) { + commonProcInit(PROC_HOOKSHOT_WALL_WAIT); + + if (param_0) { + cXyz sp28; + setOldRootQuaternion(0, -0x8000, 0); + mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0); + mDoMtx_stack_c::multVec(&cXyz::BaseZ, &sp28); + current.pos = mHookshotTopPos + (sp28 * 15.0f); + shape_angle.y = param_1; + + current.pos.x += cM_ssin(shape_angle.y) * 1.5f; + current.pos.z += cM_scos(shape_angle.y) * 1.5f; + + field_0x3022 = param_1 + 0x8000; + mIronBallBgChkPos.set(current.pos.x + cM_ssin(shape_angle.y) * 15.0f, current.pos.y, + current.pos.z + cM_scos(shape_angle.y) * 15.0f); + + daAlink_ANM anm; + if (field_0x3020 == 0) { + field_0x3020 = 1; + anm = ANM_HOOKSHOT_WALL_END_LEFT; + } else { + field_0x3020 = 0; + anm = ANM_HOOKSHOT_WALL_END_RIGHT; + } + + field_0x300c = 0; + setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mWallHangAnm); + } else { + setHookshotWallWaitAnime(); + field_0x300c = 1; + } + + dComIfGp_setPlayerStatus1(0, 0x2000000); + resetHookshotMode(); + field_0x3024 = 1; + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + current.angle.y = shape_angle.y; + + if (param_0) { + setHookshotHangMoveBGCollect(); + } + + field_0x300e.z = param_2; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -752,9 +2032,74 @@ asm int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_ #include "asm/d/a/d_a_alink/procHookshotWallWaitInit__9daAlink_cFisi.s" } #pragma pop +#endif /* 8010D38C-8010D5F4 107CCC 0268+00 1/0 0/0 0/0 .text procHookshotWallWait__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotWallWait() { + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x80)) { + if (checkSubjectEnd(1)) { + dComIfGp_clearPlayerStatus0(0, 0x2000); + mBodyAngle.x = 0; + offModeFlg(0x60000000); + } else if (i_dComIfGp_checkPlayerStatus0(0, 0x2000)) { + s16 old_angle = shape_angle.y; + shape_angle.y = field_0x310c; + setBodyAngleToCamera(); + + shape_angle.y = old_angle; + + if ((s16)(field_0x310c - shape_angle.y) > 0x4000) { + field_0x310c = shape_angle.y + 0x4000; + } else if ((s16)(field_0x310c - shape_angle.y) < -0x4000) { + field_0x310c = shape_angle.y - 0x4000; + } + } + } else if (dCam_getBody()->ChangeModeOK(4)) { + i_onResetFlg0(RFLG0_UNK_4000000); + + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x1000)) { + field_0x310c = shape_angle.y; + field_0x310a = 0; + setSubjectMode(); + onModeFlg(0x60000000); + } + } + + if (commonHookshotWallWait()) { + return 1; + } + + setDoStatusEmphasys(1); + + if (doTrigger()) { + return procFallInit(1, 5.0f); + } + + if (field_0x300c == 0) { + if (checkSetItemTrigger(W_HOOKSHOT)) { + field_0x300e.z = 1; + } else if (field_0x300e.z != 0 && !itemButton()) { + field_0x300e.z = 0; + } + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + if (frameCtrl_p->checkAnmEnd() || + ((checkInputOnR() || field_0x300e.z != 0) && + frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mWallHangAnm.mCheckFrame)) + { + setHookshotWallWaitAnime(); + field_0x300c = 1; + } + } else if (checkSetItemTrigger(W_HOOKSHOT) || field_0x300e.z != 0) { + return procHookshotWallShootInit(); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -763,8 +2108,39 @@ asm int daAlink_c::procHookshotWallWait() { #include "asm/d/a/d_a_alink/procHookshotWallWait__9daAlink_cFv.s" } #pragma pop +#endif /* 8010D5F4-8010D6CC 107F34 00D8+00 1/1 0/0 0/0 .text procHookshotWallShootInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHookshotWallShootInit() { + commonProcInit(PROC_HOOKSHOT_WALL_SHOOT); + + daAlink_ANM anm; + if (field_0x3020 == 0) { + anm = ANM_HOOKSHOT_WALL_WAIT_RIGHT; + } else { + anm = ANM_HOOKSHOT_WALL_WAIT_LEFT; + } + + setSingleAnimeBaseSpeed(anm, 1.0f, 3.0f); + setFastShotTimer(); + setSpecialGravity(0.0f, mMaxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + + dComIfGp_setPlayerStatus1(0, 0x2000000); + initHookshotReady(); + dComIfGp_setPlayerStatus0(0, 0x4000); + + field_0x300c = 0; + field_0x300e.x = mBodyAngle.x; + field_0x300e.y = shape_angle.y; + field_0x310c = field_0x300e.y; + setHookshotReadyMaterial(); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -773,9 +2149,89 @@ asm int daAlink_c::procHookshotWallShootInit() { #include "asm/d/a/d_a_alink/procHookshotWallShootInit__9daAlink_cFv.s" } #pragma pop +#endif /* 8010D6CC-8010D93C 10800C 0270+00 1/0 0/0 0/0 .text procHookshotWallShoot__9daAlink_cFv */ +// matches with a i_checkAttentionLock fix +#ifdef NONMATCHING +int daAlink_c::procHookshotWallShoot() { + if (checkHookshotWait()) { + setDoStatus(0x12); + } + + if (commonHookshotWallWait()) { + return 1; + } + + mSight.offDrawFlg(); + dComIfGp_clearPlayerStatus0(0, 0x40000); + + if (mFastShotTime != 0 && checkHookshotWait()) { + mFastShotTime--; + } + + BOOL var_r31 = false; + if (!checkUpperItemActionHookshot()) { + s16 old_angle = shape_angle.y; + mBodyAngle.x = field_0x300e.x; + shape_angle.y = field_0x300e.y; + + if (!i_checkAttentionLock() && mFastShotTime == 0) { + if (checkHookshotWait()) { + mUnderFrameCtrl[0].setRate(0.0f); + mUnderFrameCtrl[0].setFrame(0.0f); + getNowAnmPackUnder(UNDER_0)->setFrame(0.0f); + + if (field_0x300c != 0 && setBodyAngleToCamera()) { + var_r31 = true; + } + } else { + dComIfGp_setPlayerStatus0(0, 0x40000); + } + + field_0x300c = 1; + } else { + if (mTargetedActor == NULL && mItemMode == HS_MODE_NONE_e) { + shape_angle.y = old_angle; + return procHookshotWallWaitInit(0, 0, 0); + } + + if (checkHookshotWait()) { + setWaterInAnmRate(mUnderFrameCtrl, 1.0f); + + if (field_0x300c == 0) { + setBodyAngleXReadyAnime(0); + + if (!setShapeAngleToAtnActor(0)) { + cLib_addCalcAngleS(&shape_angle.y, old_angle, 4, 0xC00, 0x180); + } + } + } + + field_0x300c = 0; + } + + if ((s16)(shape_angle.y - old_angle) > 0x4000) { + shape_angle.y = old_angle + 0x4000; + } else if ((s16)(shape_angle.y - old_angle) < -0x4000) { + shape_angle.y = old_angle - 0x4000; + } + + if (var_r31) { + setHookshotSight(); + } + + field_0x300e.x = mBodyAngle.x; + mBodyAngle.x = 0; + field_0x310c = shape_angle.y; + field_0x300e.y = shape_angle.y; + shape_angle.y = old_angle; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -783,4 +2239,5 @@ asm int daAlink_c::procHookshotWallShoot() { nofralloc #include "asm/d/a/d_a_alink/procHookshotWallShoot__9daAlink_cFv.s" } -#pragma pop \ No newline at end of file +#pragma pop +#endif diff --git a/src/d/a/d_a_alink_horse.inc b/src/d/a/d_a_alink_horse.inc index d7d33e5dbb..eb41b83c4f 100644 --- a/src/d/a/d_a_alink_horse.inc +++ b/src/d/a/d_a_alink_horse.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_horse.inc + * Player Epona riding handling + */ + /* 800EC724-800EC758 0E7064 0034+00 3/3 0/0 0/0 .text daAlink_searchBoar__FP10fopAc_ac_cPv */ #pragma push #pragma optimization_level 0 diff --git a/src/d/a/d_a_alink_hvyboots.inc b/src/d/a/d_a_alink_hvyboots.inc index ab287610eb..039d5be5c4 100644 --- a/src/d/a/d_a_alink_hvyboots.inc +++ b/src/d/a/d_a_alink_hvyboots.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_hvyboots.inc + * Player Iron Boots action handling + */ + /* 800E23FC-800E243C 0DCD3C 0040+00 6/6 0/0 0/0 .text concatMagneBootMtx__9daAlink_cFv */ void daAlink_c::concatMagneBootMtx() { if (i_checkMagneBootsOn()) { diff --git a/src/d/a/d_a_alink_iceleaf.inc b/src/d/a/d_a_alink_iceleaf.inc index 345c790236..e34994a9d4 100644 --- a/src/d/a/d_a_alink_iceleaf.inc +++ b/src/d/a/d_a_alink_iceleaf.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_iceleaf.inc + * Player Ice Leaf surfing handling + */ + /* 80105A84-80105A98 1003C4 0014+00 1/1 0/0 0/0 .text daAlink_searchIceLeaf__FP10fopAc_ac_cPv */ static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* param_1) { if (fopAcM_GetName(i_actor) == PROC_Obj_IceLeaf) { @@ -156,8 +161,8 @@ int daAlink_c::procBoardRowInit() { setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), daAlinkHIO_board_c0::m.mPushInterpolation); i_onResetFlg1(0x40); field_0x3008 = 4; - field_0x3010 = 1; - field_0x3012 = 0; + field_0x300e.y = 1; + field_0x300e.z = 0; return 1; } @@ -177,8 +182,8 @@ int daAlink_c::procBoardTurnInit() { commonProcInit(PROC_BOARD_TURN); setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108), lit_6040, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, lit_6109); mNormalSpeed = FLOAT_LABEL(lit_6108); - field_0x3010 = shape_angle.y + 0x8000; - field_0x3012 = 0; + field_0x300e.y = shape_angle.y + 0x8000; + field_0x300e.z = 0; field_0x300a = 0; return 1; @@ -199,7 +204,7 @@ asm int daAlink_c::procBoardTurn() { int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) { commonProcInit(PROC_BOARD_JUMP); field_0x3008 = 0; - field_0x3012 = 1; + field_0x300e.z = 1; setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108), daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame, @@ -210,7 +215,7 @@ int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) { speed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY); } - field_0x3010 = 0; + field_0x300e.y = 0; seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP); return 1; } @@ -235,12 +240,12 @@ int daAlink_c::procBoardJump() { if (!i_checkModeFlg(2)) { setBoardLandAnime(); procBoardWaitInit(NULL); - } else if (field_0x3012 != 0 && field_0x3010 == 0 && field_0x2060->getOldFrameRate() < lit_8782) { + } else if (field_0x300e.z != 0 && field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < lit_8782) { setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, lit_6041); - field_0x3010 = 1; + field_0x300e.y = 1; } } @@ -293,7 +298,7 @@ int daAlink_c::procBoardCutInit() { setCommonBoardAnime(0); setCutDash(1, var_r31); - field_0x3012 = 0; + field_0x300e.z = 0; return 1; } diff --git a/src/d/a/d_a_alink_ironball.inc b/src/d/a/d_a_alink_ironball.inc index 82084f0560..1a59929ce3 100644 --- a/src/d/a/d_a_alink_ironball.inc +++ b/src/d/a/d_a_alink_ironball.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_ironball.inc + * Player Ball & Chain action handling + */ + /* 8011243C-80112458 10CD7C 001C+00 1/0 0/0 0/0 .text getIronBallCenterPos__9daAlink_cFv */ cXyz* daAlink_c::getIronBallCenterPos() { diff --git a/src/d/a/d_a_alink_kandelaar.inc b/src/d/a/d_a_alink_kandelaar.inc index bd3bbfd90a..903e08b691 100644 --- a/src/d/a/d_a_alink_kandelaar.inc +++ b/src/d/a/d_a_alink_kandelaar.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_kandelaar.inc + * Player Lantern action handling + */ + /* 80110654-80110668 10AF94 0014+00 1/1 0/0 0/0 .text daAlink_searchTagKandelaar__FP10fopAc_ac_cPv */ static fopAc_ac_c* daAlink_searchTagKandelaar(fopAc_ac_c* i_actor, void* param_1) { @@ -158,7 +163,7 @@ asm void daAlink_c::setKandelaarModel() { void daAlink_c::resetOilBottleModel() { deleteEquipItem(0, 1); - if (field_0x300e != 0) { + if (field_0x300e.x != 0) { setKandelaarModel(); mEquipItem = KANTERA; } diff --git a/src/d/a/d_a_alink_link.inc b/src/d/a/d_a_alink_link.inc index b192b5a7ac..3b6e8ca563 100644 --- a/src/d/a/d_a_alink_link.inc +++ b/src/d/a/d_a_alink_link.inc @@ -1,28 +1,37 @@ +/** + * d_a_alink_link.inc + * General Player Human action handling + */ + +#include "JSystem/J3DGraphBase/J3DDrawBuffer.h" +#include "d/a/d_a_alink.h" +#include "rel/d/a/d_a_canoe/d_a_canoe.h" + /* 800C2DDC-800C2EAC 0BD71C 00D0+00 17/17 0/0 0/0 .text * procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c */ -int daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) { +int daAlink_c::procPreActionUnequipInit(int i_procAfter, fopAc_ac_c* param_1) { commonProcInit(PROC_PREACTION_UNEQUIP); mNormalSpeed = FLOAT_LABEL(lit_6108); setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); allUnequip(0); - field_0x3010 = 0; + field_0x300e.y = 0; if (param_1 != NULL) { field_0x280c.setData(param_1); - field_0x300e = 1; + field_0x300e.x = 1; if (fopAcM_GetName(param_1) == PROC_Tag_Lv8Gate) { if (mEquipItem == KANTERA) { - field_0x3010 = 1; + field_0x300e.y = 1; } else if (i_checkNoResetFlg2(FLG2_UNK_1)) { offKandelaarModel(); } } } else { - field_0x300e = 0; + field_0x300e.x = 0; } - field_0x3198 = param_0; + field_0x3198 = i_procAfter; return 1; } @@ -30,7 +39,7 @@ int daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) { */ int daAlink_c::procPreActionUnequip() { if (checkNoUpperAnime()) { - if (field_0x300e != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor())) + if (field_0x300e.x != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor())) { checkWaitAction(); } else if (field_0x3198 == PROC_PUSH_PULL_WAIT) { @@ -90,18 +99,18 @@ int daAlink_c::procServiceWaitInit() { /* 800C30F0-800C3224 0BDA30 0134+00 1/0 0/0 0/0 .text procServiceWait__9daAlink_cFv */ int daAlink_c::procServiceWait() { - J3DFrameCtrl* ctrl = &mUnderFrameCtrl[0]; + J3DFrameCtrl* frameCtrl_p = mUnderFrameCtrl; if ((!checkNextAction(0) && !checkFrontWallTypeAction()) && (checkEventRun() || checkGuardActionChange() || shape_angle.y != field_0x2fe6)) { - ctrl->setRate(FLOAT_LABEL(lit_6108)); + frameCtrl_p->setRate(FLOAT_LABEL(lit_6108)); procWaitInit(); } else { - if (ctrl->checkPass(lit_10040)) { + if (frameCtrl_p->checkPass(lit_10040)) { voiceStart(Z2SE_AL_V_RELAX_A); - } else if (ctrl->checkPass(lit_11673)) { + } else if (frameCtrl_p->checkPass(lit_11673)) { voiceStart(Z2SE_AL_V_RELAX_B); - } else if (ctrl->checkPass(lit_25684)) { + } else if (frameCtrl_p->checkPass(lit_25684)) { voiceStart(Z2SE_AL_V_RELAX_C); } } @@ -142,13 +151,13 @@ int daAlink_c::procTiredWaitInit() { /* 800C3338-800C33B8 0BDC78 0080+00 1/0 0/0 0/0 .text procTiredWait__9daAlink_cFv */ int daAlink_c::procTiredWait() { - daPy_frameCtrl_c* ctrl = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; if (!checkNextAction(0)) { - if (ctrl->checkAnmEnd()) { + if (frameCtrl_p->checkAnmEnd()) { setSingleAnimeBase(ANM_WAIT_TIRED); - } else if (ctrl->getAttribute() == 2) { - setTiredVoice(ctrl); + } else if (frameCtrl_p->getAttribute() == 2) { + setTiredVoice(frameCtrl_p); } } @@ -199,6 +208,47 @@ int daAlink_c::procWaitInit() { } /* 800C3504-800C36CC 0BDE44 01C8+00 1/0 0/0 0/0 .text procWait__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procWait() { + BOOL anm_wait_b = checkUnderMove0BckNoArc(ANM_WAIT_B); + + if (!checkNextAction(0) && !checkFrontWallTypeAction()) { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + field_0x33f0 = (s16)(shape_angle.y - field_0x2fe6) * 0.005f; + + if (frameCtrl_p->checkAnmEnd() || checkUpperGuardAnime() || + !checkUnderMove0BckNoArc(ANM_WAIT_B_TO_A)) + { + if (checkRestHPAnime() && shape_angle.y == field_0x2fe6) { + return procTiredWaitInit(); + } + + setBlendMoveAnime(-1.0f); + if (anm_wait_b && !checkUnderMove0BckNoArc(ANM_WAIT_B)) { + setSingleAnimeBase(ANM_WAIT_B_TO_A); + } + } else if (frameCtrl_p->checkPass(30.0f)) { + field_0x2f92 = 4; + field_0x2f93 = 10; + } + + if (checkServiceWaitMode() && checkUnderMove0BckNoArc(ANM_WAIT)) { + if (field_0x30ca != 0) { + field_0x30ca--; + } + + if (field_0x30ca == 0 && frameCtrl_p->checkPass(0.0f)) { + procServiceWaitInit(); + } + } else { + initServiceWaitTime(); + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -207,6 +257,7 @@ asm int daAlink_c::procWait() { #include "asm/d/a/d_a_alink/procWait__9daAlink_cFv.s" } #pragma pop +#endif /* 800C36CC-800C3730 0BE00C 0064+00 3/3 0/0 0/0 .text procMoveInit__9daAlink_cFv */ int daAlink_c::procMoveInit() { @@ -333,7 +384,7 @@ int daAlink_c::procWaitTurnInit() { mNormalSpeed = FLOAT_LABEL(lit_6108); } - field_0x300e = field_0x2fe2; + field_0x300e.x = field_0x2fe2; current.angle.y = shape_angle.y; return 1; } @@ -347,7 +398,7 @@ int daAlink_c::procWaitTurn() { } else if (i_checkEndResetFlg0(ERFLG0_UNK_100000)) { return procFloorDownReboundInit(); } else { - s16 angle = cLib_addCalcAngleS(&shape_angle.y, field_0x300e, 30, 0x3CDF, 8000); + s16 angle = cLib_addCalcAngleS(&shape_angle.y, field_0x300e.x, 30, 0x3CDF, 8000); current.angle.y = shape_angle.y; if (checkNextActionFromButton()) { @@ -378,26 +429,26 @@ int daAlink_c::procMoveTurnInit(int param_0) { dComIfGp_setPlayerStatus0(0, 0x800); if (param_0 != 0) { - field_0x300e = (daAlinkHIO_move_c0::m.mMaxTurnAngle * 4) + 19030; - field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; + field_0x300e.x = (daAlinkHIO_move_c0::m.mMaxTurnAngle * 4) + 19030; + field_0x300e.y = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; field_0x300a = 2; current.angle.y = field_0x2fe2; mNormalSpeed *= lit_5943; } else { - field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; - field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; + field_0x300e.x = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; + field_0x300e.y = daAlinkHIO_move_c0::m.mMaxTurnAngle; field_0x300a = 3; } - field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; - field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; + field_0x300e.x = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; + field_0x300e.y = daAlinkHIO_move_c0::m.mMaxTurnAngle; return 1; } /* 800C3D38-800C3DA0 0BE678 0068+00 1/0 0/0 0/0 .text procMoveTurn__9daAlink_cFv */ int daAlink_c::procMoveTurn() { setSpeedAndAngleNormal(); - cLib_addCalcAngleS(&shape_angle.y, current.angle.y, field_0x300a, field_0x300e, field_0x3010); + cLib_addCalcAngleS(&shape_angle.y, current.angle.y, field_0x300a, field_0x300e.x, field_0x300e.y); if (!checkNextAction(0)) { setBlendMoveAnime(lit_6041); @@ -446,7 +497,7 @@ int daAlink_c::procSideStepInit(int jump_type) { voiceStart(Z2SE_AL_V_JUMP_S); field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; return 1; } @@ -469,7 +520,7 @@ int daAlink_c::procSideStep() { if (checkUpperItemActionFly()) { return 1; - } else if (mLinkAcch.ChkGroundHit() && field_0x300e != 0) { + } else if (mLinkAcch.ChkGroundHit() && field_0x300e.x != 0) { if (field_0x300c != 0 && checkSideRollAction(field_0x2f98)) { return 1; } else { @@ -483,7 +534,7 @@ int daAlink_c::procSideStep() { return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation); } - field_0x300e = 1; + field_0x300e.x = 1; checkItemChangeFromButton(); return 1; } @@ -536,7 +587,7 @@ int daAlink_c::procSideStepLandInit() { /* 800C4278-800C4378 0BEBB8 0100+00 1/0 0/0 0/0 .text procSideStepLand__9daAlink_cFv */ int daAlink_c::procSideStepLand() { - daPy_frameCtrl_c* ctrl = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; i_onEndResetFlg0(ERFLG0_UNK_8000000); if (field_0x2fcc != 0) { @@ -547,13 +598,13 @@ int daAlink_c::procSideStepLand() { field_0x300c = 1; } - if (ctrl->checkAnmEnd()) { + if (frameCtrl_p->checkAnmEnd()) { if (mDemo.getDemoMode() == 16) { dComIfGp_evmng_cutEnd(field_0x3184); } else { checkNextAction(0); } - } else if (ctrl->getFrame() > field_0x3478) { + } else if (frameCtrl_p->getFrame() > field_0x3478) { if (field_0x300c != 0 && checkSideRollAction(field_0x2f98)) { return 1; } @@ -572,12 +623,12 @@ int daAlink_c::procSlideInit(s16 param_0) { current.angle.y = param_0; if (getMoveBGActorName(mLinkAcch.m_gnd, 0) == PROC_Obj_Lv3R10Saka) { - field_0x300e = 1; + field_0x300e.x = 1; } else { - field_0x300e = 0; + field_0x300e.x = 0; } - if (cLib_distanceAngleS(param_0, shape_angle.y) < 0x3800 || field_0x300e != 0) { + if (cLib_distanceAngleS(param_0, shape_angle.y) < 0x3800 || field_0x300e.x != 0) { field_0x3198 = 1; setSingleAnimeParam(ANM_SLIDE_FORWARD, &daAlinkHIO_slide_c0::m.mForwardSlideAnm); dComIfGp_setPlayerStatus1(0, 0x100); @@ -600,7 +651,7 @@ int daAlink_c::procSlideInit(s16 param_0) { field_0x594 = daAlinkHIO_slide_c0::m.mMaxSpeed; field_0x33cc = FLOAT_LABEL(lit_6108); field_0x300c = 0; - field_0x3010 = 0; + field_0x300e.y = 0; return 1; } @@ -609,6 +660,69 @@ int daAlink_c::procSlideInit(s16 param_0) { SECTION_SDATA2 static f32 lit_73057 = -4096.0f; /* 800C4514-800C47AC 0BEE54 0298+00 1/0 0/0 0/0 .text procSlide__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procSlide() { + cM3dGPla slide_poly; + + if (getSlidePolygon(&slide_poly)) { + s16 angleY = slide_poly.mNormal.atan2sX_Z(); + if (field_0x3198 != 0) { + f32 sin = field_0x33a8 * cM_ssin(field_0x2fe2 - shape_angle.y); + + if (checkInputOnR()) { + field_0x300c = + cLib_minMaxLimit((s16)(field_0x300c + sin * 256.0f), (s16)-0x1000, (s16)0x1000); + } else { + cLib_chaseS(&field_0x300c, 0, 64); + } + + angleY += field_0x300c; + cLib_addCalcAngleS(&field_0x300e.y, sin * -4096.0f, 3, 300, 50); + } + + cLib_addCalcAngleS(¤t.angle.y, angleY, 4, 0x1000, 0x400); + + s16 shape_angleY; + if (field_0x3198 != 0) { + shape_angleY = current.angle.y; + field_0x2f9d = 4; + } else { + shape_angleY = current.angle.y + 0x8000; + field_0x2f9d = 0x60; + } + + cLib_addCalcAngleS(&shape_angle.y, shape_angleY, 4, 0x1000, 0x400); + + if (field_0x3198 == 0 || mUnderFrameCtrl[0].getFrame() > 6.0f) { + f32 accel = daAlinkHIO_slide_c0::m.mAcceleration; + f32 var_f6 = field_0x594; + + if (i_checkNoResetFlg0(FLG0_UNDERWATER)) { + accel *= 0.3f; + var_f6 *= 0.3f; + } + + mNormalSpeed += accel * ((1.0f - slide_poly.mNormal.y) * 0.5f + 1.0f) * + cM_scos(current.angle.y - angleY); + if (mNormalSpeed > var_f6) { + mNormalSpeed = var_f6; + } + + if (field_0x3198 != 0) { + field_0x33cc = 1.0f; + onModeFlg(0x20000000); + } + + seStartMapInfoLevel(Z2SE_FN_LINK_SLIP); + } + } else { + procSlideLandInit(field_0x3198); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -617,6 +731,7 @@ asm int daAlink_c::procSlide() { #include "asm/d/a/d_a_alink/procSlide__9daAlink_cFv.s" } #pragma pop +#endif /* 800C47AC-800C4894 0BF0EC 00E8+00 1/1 0/0 0/0 .text procSlideLandInit__9daAlink_cFi */ int daAlink_c::procSlideLandInit(int param_0) { @@ -641,17 +756,17 @@ int daAlink_c::procSlideLandInit(int param_0) { /* 800C4894-800C494C 0BF1D4 00B8+00 1/0 0/0 0/0 .text procSlideLand__9daAlink_cFv */ int daAlink_c::procSlideLand() { - daPy_frameCtrl_c* ctrl = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), lit_7450); if (field_0x3198 != 0) { field_0x2f99 = 4; } - if (ctrl->checkAnmEnd()) { + if (frameCtrl_p->checkAnmEnd()) { current.angle.y = shape_angle.y; checkNextAction(0); - } else if (ctrl->getFrame() > field_0x3478) { + } else if (frameCtrl_p->getFrame() > field_0x3478) { s16 tmp_angle = current.angle.y; current.angle.y = shape_angle.y; @@ -664,59 +779,62 @@ int daAlink_c::procSlideLand() { } /* 800C494C-800C4B40 0BF28C 01F4+00 4/3 0/0 0/0 .text procFrontRollInit__9daAlink_cFv */ +// some issue with daAlinkHIO_frontRoll_c0::m not being saved into r31 #ifdef NONMATCHING int daAlink_c::procFrontRollInit() { - BOOL check = checkUpperGuardAnime(); + BOOL is_guard_anime = checkUpperGuardAnime(); if (mProcID == PROC_FRONT_ROLL && mDemo.getDemoMode() == 0x28) { return 0; - } else { - BOOL check = mProcID == PROC_DIVE_JUMP; - commonProcInit(PROC_FRONT_ROLL); - - f32 fvar1; - if (!check) { - fvar1 = daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x04; - } else { - fvar1 = lit_7977; - } - setSingleAnime(ANM_FRONT_ROLL, daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x04, fvar1, - daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x00, - daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x0c); - mNormalSpeed = - speedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate; - if (mNormalSpeed > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08) { - mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08; - } - if (mNormalSpeed < daAlinkHIO_frontRoll_c0::m.mMinSpeed) { - mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mMinSpeed; - } - - if (!i_checkNoResetFlg0(FLG0_UNDERWATER)) { - if (checkHeavyStateOn(1, 1)) { - mNormalSpeed *= mHeavySpeedMultiplier; - } - } else { - mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; - } - current.angle.y = shape_angle.y; - voiceStart(Z2SE_AL_V_BACKTEN); - field_0x300c = 0; - setFootEffectProcType(0); - if (check) { - i_onNoResetFlg0(2); - } - if (i_checkEquipHeavyBoots()) { - field_0xFB8.SetAtType(AT_TYPE_HEAVY_BOOTS); - field_0xFB8.SetAtHitMark(1); - field_0xFB8.SetAtSe(9); - field_0xFB8.SetAtAtp(2); - field_0xFB8.SetAtMtrl(0); - field_0xFB8.ResetAtHit(); - field_0xFB8.SetR(daAlinkHIO_frontRoll_c0::m.mBootsAttackRadius); - field_0xFB8.OnAtSetBit(); - } - return 1; } + + BOOL is_dive_jump = mProcID == PROC_DIVE_JUMP; + commonProcInit(PROC_FRONT_ROLL); + + f32 roll_anm_speed; + if (!is_dive_jump) { + roll_anm_speed = daAlinkHIO_frontRoll_c0::m.mRollAnm.mSpeed; + } else { + roll_anm_speed = lit_7977; + } + setSingleAnime(ANM_FRONT_ROLL, daAlinkHIO_frontRoll_c0::m.mRollAnm.mSpeed, roll_anm_speed, + daAlinkHIO_frontRoll_c0::m.mRollAnm.mEndFrame, + daAlinkHIO_frontRoll_c0::m.mRollAnm.mInterpolation); + + mNormalSpeed = + speedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate; + if (mNormalSpeed > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.mStartFrame) { + mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.mStartFrame; + } + + if (mNormalSpeed < daAlinkHIO_frontRoll_c0::m.mMinSpeed) { + mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mMinSpeed; + } + + if (i_checkNoResetFlg0(FLG0_UNDERWATER)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + } else if (checkHeavyStateOn(1, 1)) { + mNormalSpeed *= mHeavySpeedMultiplier; + } + + current.angle.y = shape_angle.y; + voiceStart(Z2SE_AL_V_BACKTEN); + field_0x300c = 0; + setFootEffectProcType(0); + if (is_guard_anime) { + i_onNoResetFlg0(2); + } + + if (i_checkEquipHeavyBoots()) { + field_0xFB8.SetAtType(AT_TYPE_HEAVY_BOOTS); + field_0xFB8.SetAtHitMark(1); + field_0xFB8.SetAtSe(9); + field_0xFB8.SetAtAtp(2); + field_0xFB8.SetAtMtrl(0); + field_0xFB8.ResetAtHit(); + field_0xFB8.SetR(daAlinkHIO_frontRoll_c0::m.mBootsAttackRadius); + field_0xFB8.OnAtSetBit(); + } + return 1; } #else #pragma push @@ -730,6 +848,103 @@ asm int daAlink_c::procFrontRollInit() { #endif /* 800C4B40-800C4F14 0BF480 03D4+00 1/0 0/0 0/0 .text procFrontRoll__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procFrontRoll() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + i_onEndResetFlg0(ERFLG0_UNK_8000000); + + cM3dGPla poly; + if (getSlidePolygon(&poly)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + } + + if (checkInputOnR()) { + cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_frontRoll_c0::m.mTurnRate, + daAlinkHIO_frontRoll_c0::m.mTurnMaxAngle, + daAlinkHIO_frontRoll_c0::m.mTurnMinAngle); + shape_angle.y = current.angle.y; + } + + if (i_checkNoResetFlg0(FLG0_UNK_2)) { + setUpperGuardAnime(-1.0f); + } + + if (frameCtrl_p->checkAnmEnd()) { + if (mDemo.getDemoMode() == 0x28) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + if (!checkInputOnR()) { + mNormalSpeed -= daAlinkHIO_frontRoll_c0::m.mMinSpeed; + if (mNormalSpeed < 0.0f) { + mNormalSpeed = 0.0f; + } + } + + checkNextAction(0); + } + } else if (frameCtrl_p->getFrame() > daAlinkHIO_frontRoll_c0::m.mRollAnm.mCheckFrame) { + onModeFlg(4); + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + + if (checkZeroSpeedF()) { + onModeFlg(1); + } + + if (field_0x300c != 0) { + procCutFinishInit(2); + } else if (!checkNextAction(1)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + } + } else if (mDemo.getDemoMode() != 0x28 && + speedF >= daAlinkHIO_frontRoll_c0::m.mCrashSpeedThreshold && + (i_checkNoResetFlg0(FLG0_UNK_18) || + (field_0x18B0[0].ChkWallHit() && + !dComIfG_Bgsp().GetPolyAttackThrough(field_0x18B0[0])) && + dComIfG_Bgsp().GetWallCode(field_0x18B0[0]) != 7 && + cLib_distanceAngleS(current.angle.y + 0x8000, + field_0x18B0[0].GetWallAngleY()) <= + daAlinkHIO_frontRoll_c0::m.mCrashAngleThreshold && + frameCtrl_p->getFrame() >= daAlinkHIO_frontRoll_c0::m.mCrashInitF && + frameCtrl_p->getFrame() <= daAlinkHIO_frontRoll_c0::m.mCrashEndF)) + { + if (!i_checkNoResetFlg0(FLG0_UNK_18)) { + mRollCrashFlg = dKy_pol_sound_get(&field_0x18B0[0]); + } + + if (i_checkNoResetFlg0(FLG0_UNK_10) || + (mLinkAcch.ChkWallHit() && field_0x18B0[0].ChkWallHit() && + (getMoveBGActorName(field_0x18B0[0], 0) == PROC_Obj_Pillar || + getMoveBGActorName(field_0x18B0[0], 0) == PROC_Obj_TaFence))) + { + procFrontRollSuccessInit(); + } else { + procFrontRollCrashInit(); + } + } else { + if (frameCtrl_p->checkPass(21.0f)) { + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + + if (checkForceSwordSwing()) { + field_0x300c = 1; + } + + if (frameCtrl_p->getFrame() > 16.0f) { + if (frameCtrl_p->getFrame() >= 18.0f) { + field_0x2f92 = 1; + field_0x2f93 = 6; + } + + cLib_chaseF(&mNormalSpeed, 0.0f, 1.0f); + } else if (frameCtrl_p->getFrame() > 6.0f) { + field_0x2f9d = 4; + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -738,6 +953,7 @@ asm int daAlink_c::procFrontRoll() { #include "asm/d/a/d_a_alink/procFrontRoll__9daAlink_cFv.s" } #pragma pop +#endif /* 800C4F14-800C4FFC 0BF854 00E8+00 1/1 0/0 0/0 .text procFrontRollCrashInit__9daAlink_cFv */ int daAlink_c::procFrontRollCrashInit() { @@ -822,7 +1038,7 @@ int daAlink_c::procFrontRollSuccessInit() { /* 800C5240-800C5328 0BFB80 00E8+00 1/0 0/0 0/0 .text procFrontRollSuccess__9daAlink_cFv */ int daAlink_c::procFrontRollSuccess() { - daPy_frameCtrl_c* frameCtrl = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; field_0x2f99 = 4; i_onEndResetFlg0(0x8000000); @@ -888,6 +1104,68 @@ int daAlink_c::procSideRollInit(int param_0) { } /* 800C5484-800C5700 0BFDC4 027C+00 1/0 0/0 0/0 .text procSideRoll__9daAlink_cFv */ +// issues with i_checkAttentionLock +#ifdef NONMATCHING +int daAlink_c::procSideRoll() { + i_onEndResetFlg0(ERFLG0_UNK_8000000); + if (mTargetedActor != NULL) { + s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); + cLib_addCalcAngleS(&shape_angle.y, actor_angle, 5, 0x5E8, 0x13C); + + if (field_0x2f98 == 2) { + current.angle.y = shape_angle.y + 0x4000; + } else { + current.angle.y = shape_angle.y - 0x4000; + } + } + + field_0x300c |= checkCutFinishJumpUp(); + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + cM3dGPla poly; + + if (getSlidePolygon(&poly)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + } + + if (i_checkNoResetFlg0(FLG0_UNK_2)) { + setUpperGuardAnime(-1.0f); + } + + if (frameCtrl_p->checkAnmEnd()) { + if (mDemo.getDemoMode() == 0x49) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + if (!i_checkAttentionLock()) { + i_offNoResetFlg2(FLG0_PLAYER_NO_DRAW); + } + + checkNextAction(0); + } + } else if (field_0x300c != 0 && !checkNotJumpSinkLimit() && + frameCtrl_p->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCheckFrame) + { + procCutFinishJumpUpInit(); + } else if (frameCtrl_p->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCheckFrame) { + onModeFlg(4); + if (!checkNextAction(1)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 7.5f); + } + } else { + if (frameCtrl_p->checkPass(19.0f)) { + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + + if (frameCtrl_p->getFrame() < 18.0f) { + field_0x2f9d = 4; + } else { + cLib_chaseF(&mNormalSpeed, 0.0f, 0.5f); + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -896,6 +1174,7 @@ asm int daAlink_c::procSideRoll() { #include "asm/d/a/d_a_alink/procSideRoll__9daAlink_cFv.s" } #pragma pop +#endif /* 800C5700-800C57A4 0C0040 00A4+00 2/2 0/0 0/0 .text backJumpSpeedDec__9daAlink_cFv */ void daAlink_c::backJumpSpeedDec() { @@ -1056,6 +1335,51 @@ int daAlink_c::procSlipInit() { } /* 800C5CA4-800C5E68 0C05E4 01C4+00 1/0 0/0 0/0 .text procSlip__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procSlip() { + cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mSlideDeceleration); + + if (checkZeroSpeedF()) { + if (checkInputOnR()) { + current.angle.y = shape_angle.y + 0x8000; + shape_angle.y += 0x100; + mNormalSpeed = field_0x594 * 0.5f; + procMoveTurnInit(0); + } else { + checkNextAction(0); + } + } else { + cXyz sp14; + cXyz sp8; + field_0x3008--; + + if (mLinkAcch.ChkWallHit() || (field_0x3174 == 8 && field_0x3008 == 0)) { + mNormalSpeed = 0.0f; + checkNextAction(0); + return 1; + } + + if (mNormalSpeed > 2.5f) { + field_0x2f9d = 0x40; + } + + sp14 = current.pos; + sp14.y += 2.5f; + + sp8.set(sp14.x + cM_ssin(current.angle.y) * 50.0f, sp14.y, + sp14.z + cM_scos(current.angle.y) * 50.0f); + if (commonLineCheck(&sp14, &sp8) && dBgS_CheckBWallPoly(mLinkLinChk)) { + mNormalSpeed = 0.0f; + return checkNextAction(0); + } + + seStartMapInfoLevel(Z2SE_FN_LINK_SLIP); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1064,8 +1388,124 @@ asm int daAlink_c::procSlip() { #include "asm/d/a/d_a_alink/procSlip__9daAlink_cFv.s" } #pragma pop +#endif + +// TODO: Move / setup later +class ni_class : public fopAc_ac_c { +public: + bool checkGold() { return mType == 3; } + + /* 0x568 */ u8 field_0x568[0x5F0 - 0x568]; + /* 0x5F0 */ s8 mType; +}; /* 800C5E68-800C61EC 0C07A8 0384+00 4/4 0/0 0/0 .text procAutoJumpInit__9daAlink_cFi */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procAutoJumpInit(int param_0) { + u32 chk_mode_400 = i_checkModeFlg(0x400); + BOOL not_front_roll = mProcID != PROC_FRONT_ROLL ? TRUE : FALSE; + + if (checkIronBallWaitAnime()) { + resetUpperAnime(UPPER_2, -1.0f); + deleteEquipItem(TRUE, FALSE); + } + + if (field_0x27f4 != NULL && fopAcM_GetName(field_0x27f4) == PROC_CANOE) { + return procSmallJumpInit(1); + } + + if (!commonProcInitNotSameProc(PROC_AUTO_JUMP)) { + return 0; + } + + field_0x3008 = 0; + + if (chk_mode_400 || (mDemo.getDemoMode() == 0x18 && mDemo.getParam0() == 1)) { + if (chk_mode_400) { + onModeFlg(0x2000); + field_0x3008 = 5; + } + + setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, + daAlinkHIO_autoJump_c0::m.mJumpFallInterpolation); + field_0x3198 = 0x33; + current.angle.y = shape_angle.y + 0x8000; + } else { + setSingleAnimeParam(ANM_JUMP_START, &daAlinkHIO_autoJump_c0::m.mJumpAnm); + if (!not_front_roll) { + field_0x2060->initOldFrameMorf(0.0f, 0, 35); + } + + field_0x3198 = 0x31; + current.angle.y = shape_angle.y; + } + + s16 grab_actor_name; + if (mGrabItemAcKeep.getActor() != NULL) { + grab_actor_name = fopAcM_GetName(mGrabItemAcKeep.getActor()); + } else { + grab_actor_name = PROC_ALINK; + } + + s16 angle = daAlinkHIO_autoJump_c0::m.mJumpAngle; + BOOL cucco_jump = false; + field_0x3478 = -10.0f; + if (grab_actor_name == PROC_NI || grab_actor_name == PROC_NPC_TKJ2) { + if (grab_actor_name == PROC_NI && + ((ni_class*)mGrabItemAcKeep.getActor())->checkGold() == true) + { + field_0x594 = 30.0f; + } else { + if (checkStageName("F_SP115")) { + field_0x594 = 27.0f; + field_0x3478 = -10.0f; + } else { + field_0x594 = daAlinkHIO_autoJump_c0::m.mCuccoJumpMaxSpeed; + field_0x3478 = daAlinkHIO_autoJump_c0::m.mCuccoFallMaxSpeed; + } + + angle = daAlinkHIO_autoJump_c0::m.mCuccoJumpAngle; + cucco_jump = true; + } + } else { + field_0x594 = daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed; + } + + if (checkGrabGlide()) { + offModeFlg(4); + } + + if (chk_mode_400) { + speedF = field_0x594 * 0.75f; + } else { + if (speedF > field_0x594 || param_0 || + daAlinkHIO_autoJump_c0::m.mAlwaysMaxSpeedJump == true) + { + speedF = field_0x594; + } else if (speedF < daAlinkHIO_autoJump_c0::m.mMinJumpSpeed) { + speedF = daAlinkHIO_autoJump_c0::m.mMinJumpSpeed; + } + } + + mNormalSpeed = speedF * daAlinkHIO_autoJump_c0::m.mJumpSpeedRate; + speed.y = mNormalSpeed * cM_ssin(angle); + mNormalSpeed *= cM_scos(angle); + + if (cucco_jump) { + mNormalSpeed = daAlinkHIO_autoJump_c0::m.mCuccoStartSpeed; + } + + field_0x3588 = l_waitBaseAnime; + voiceStart(Z2SE_AL_V_JUMP_L); + + i_offNoResetFlg0(FLG0_UNK_40000); + field_0x300c = 0; + i_onResetFlg0(RFLG0_UNK_100); + mFallVoiceInit = false; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1074,12 +1514,143 @@ asm int daAlink_c::procAutoJumpInit(int param_0) { #include "asm/d/a/d_a_alink/procAutoJumpInit__9daAlink_cFi.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804532E4-804532E8 0018E4 0004+00 1/1 0/0 0/0 .sdata2 @73781 */ SECTION_SDATA2 static f32 lit_73781 = 2.0f / 3.0f; /* 800C61EC-800C66DC 0C0B2C 04F0+00 1/0 0/0 0/0 .text procAutoJump__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procAutoJump() { + int direction = getDirectionFromCurrentAngle(); + + if (checkInputOnR() && direction == DIR_BACKWARD) { + cLib_chaseF(&mNormalSpeed, 0.0f, field_0x33a8 * 0.2f); + } else if (checkGrabGlide()) { + cLib_chaseF(&mNormalSpeed, field_0x594, 0.1f); + } else if (!checkInputOnR()) { + cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f); + } + + if (field_0x3008 != 0) { + field_0x3008--; + } else { + offModeFlg(0x2000); + } + + setLandPassiveData(); + + if (!i_checkModeFlg(4) && checkSetItemTrigger(HVY_BOOTS)) { + setHeavyBoots(1); + } + + if (checkUpperItemActionFly()) { + return 1; + } + + if (mLinkAcch.ChkGroundHit()) { + return checkLandAction(0); + } + + if (!checkGrabAnime()) { + dCcD_Cyl* cyl_p = field_0x850; + for (int i = 0; i < 3; i++) { + fopAc_ac_c* hit_ac = cyl_p->GetCoHitAc(); + if (cyl_p->ChkCoHit() && hit_ac != NULL) { + if (fopAcM_GetName(hit_ac) == PROC_Obj_SwHang) { + return procRoofSwitchHangInit(hit_ac); + } + } + + cyl_p++; + } + + if (checkFrontWallTypeAction() || checkCutJumpInFly()) { + return 1; + } + } + + if (field_0x3198 == 0x31 || field_0x3198 == 0x32) { + field_0x2f99 = 4; + } + + if (field_0x300c != 0) { + setDoStatus(1); + + if (doTrigger()) { + freeGrabItem(); + onModeFlg(4); + } + + if (!checkGrabGlide()) { + setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, + daAlinkHIO_autoJump_c0::m.mMaxFallSpeed, 1); + field_0x300c = 0; + resetUpperAnime(UPPER_1, 3.0f); + field_0x30a0 = 0; + onModeFlg(4); + } else { + field_0x30a0 = 0x1800; + + if (!checkBootsOrArmorHeavy()) { + mFallHeight = current.pos.y; + setSpecialGravity(-1.0f, field_0x3478, 0); + } else { + setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, + daAlinkHIO_autoJump_c0::m.mMaxFallSpeed * 0.66f, 0); + } + + s16 diff; + if (checkInputOnR() && direction != DIR_BACKWARD) { + cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, 5, 200, 50); + diff = current.angle.y - shape_angle.y; + shape_angle.y = current.angle.y; + } else { + diff = 0; + } + + cLib_addCalcAngleS(&field_0x3082, -diff * 7, 10, 1000, 50); + cLib_addCalcAngleS(&field_0x308a, -diff * 12, 10, 1000, 50); + } + } + + setFallVoice(); + + f32 temp_f1 = (mFallHeight - current.pos.y) * 0.01f; + if (field_0x3198 != 0x8C && temp_f1 > daAlinkHIO_damFall_c0::m.mFallAnmTransitionHeight) { + setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f, daAlinkHIO_damFall_c0::m.mFallAnmMorf); + field_0x3198 = 0x8C; + } else if (speed.y < -mGravity && field_0x2f99 == 4) { + if (checkGrabGlide()) { + setSpecialGravity(-1.0f, field_0x3478, 0); + field_0x300c = 1; + } + + setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, + daAlinkHIO_autoJump_c0::m.mJumpFallInterpolation); + + if (field_0x300c != 0) { + setUpperAnime(0x276, UPPER_1, 1.0f, 0.0f, -1, 3.0f); + } + + field_0x2f99 = 0x20; + field_0x3198 = 0x33; + } else if (field_0x3198 == 0x31 && mUnderFrameCtrl[0].checkAnmEnd()) { + setSingleAnimeBaseSpeed(ANM_JUMP, 0.0f, daAlinkHIO_autoJump_c0::m.mAirborneInterpolation); + field_0x3198 = 0x32; + } + + if (checkGrabGlide() && field_0x35ac.y > 0.0f) { + speed.y = 0.0f; + } + + checkItemChangeFromButton(); + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1088,6 +1659,7 @@ asm int daAlink_c::procAutoJump() { #include "asm/d/a/d_a_alink/procAutoJump__9daAlink_cFv.s" } #pragma pop +#endif /* 800C66DC-800C6798 0C101C 00BC+00 1/1 0/0 0/0 .text procDiveJumpInit__9daAlink_cFv */ int daAlink_c::procDiveJumpInit() { @@ -1189,7 +1761,88 @@ int daAlink_c::procRollJump() { return 1; } +#include "d/com/d_com_inf_game.h" + /* 800C6A48-800C6D20 0C1388 02D8+00 30/30 0/0 0/0 .text procFallInit__9daAlink_cFif */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procFallInit(int param_0, f32 param_1) { + if (mDemo.getDemoMode() == 0x11) { + mLinkAcch.SetGrndNone(); + mLinkAcch.OnLineCheckNone(); + } + + u32 var_r3 = i_checkModeFlg(0x10000) && !i_dComIfGp_checkPlayerStatus0(0, 8); + u8 temp_r30 = mProcID != PROC_CANOE_GETOFF; + BOOL temp_r29 = mProcID == PROC_ROOF_HANG_FRONT_MOVE; + + if (mProcID == PROC_HORSE_GETOFF) { + horseGetOffEnd(); + } + + if (!commonProcInitNotSameProc(PROC_FALL)) { + return 0; + } + + if (i_checkNoResetFlg0(FLG0_UNDERWATER)) { + i_offNoResetFlg0(FLG0_UNDERWATER); + } + + field_0x300e.z = 0; + + if (param_0 == 1) { + mNormalSpeed = 0.0f; + speed.y = 0.0f; + current.angle.y = shape_angle.y; + + if (var_r3) { + current.pos.x += cM_ssin(shape_angle.y) * 5.0f; + current.pos.z += cM_scos(shape_angle.y) * 5.0f; + } + } else if (param_0 == 4) { + current.angle.y = field_0x2ffe; + dComIfGp_getVibration().StartShock(6, 31, cXyz(0.0f, 1.0f, 0.0f)); + setDamagePoint(field_0x318c, FALSE, TRUE, 0); + + i_onNoResetFlg1(FLG1_THROW_DAMAGE); + if (mDamageTimer != 0) { + onModeFlg(8); + } + + mNormalSpeed = field_0x3408; + speed.y = field_0x340c; + field_0x300e.z = 1; + } + + field_0x300e.y = temp_r30; + setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, param_1); + resetBasAnime(); + + if (param_0 != 4 && current.angle.y == shape_angle.y && !checkGrabAnime()) { + if (mNormalSpeed > 1.0f) { + field_0x3008 = 2; + } else { + field_0x3008 = 1; + } + } else { + field_0x3008 = 0; + } + + if (temp_r29) { + field_0x300a = 2; + field_0x32cc = 1; + } else { + field_0x300a = 7; + field_0x32cc = 0; + } + + field_0x300c = 0; + field_0x300e.x = param_0 == 3; + i_offNoResetFlg0(FLG0_UNK_40000); + mFallVoiceInit = 0; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1198,13 +1851,14 @@ asm int daAlink_c::procFallInit(int param_0, f32 param_1) { #include "asm/d/a/d_a_alink/procFallInit__9daAlink_cFif.s" } #pragma pop +#endif /* 800C6D20-800C6F18 0C1660 01F8+00 1/0 0/0 0/0 .text procFall__9daAlink_cFv */ int daAlink_c::procFall() { - if (field_0x3012 == 0) { + if (field_0x300e.z == 0) { cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), lit_9054); - } else if (field_0x3012 > 0) { - field_0x3012 = -1; + } else if (field_0x300e.z > 0) { + field_0x300e.z = -1; return 1; } @@ -1214,7 +1868,7 @@ int daAlink_c::procFall() { } if (mLinkAcch.ChkGroundHit()) { - return checkLandAction(field_0x300e); + return checkLandAction(field_0x300e.x); } if (i_dComIfGs_getLife() != 0) { @@ -1308,6 +1962,52 @@ int daAlink_c::procLand() { } /* 800C70F8-800C72D4 0C1A38 01DC+00 3/3 0/0 0/0 .text procSmallJumpInit__9daAlink_cFi */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procSmallJumpInit(int param_0) { + commonProcInit(PROC_SMALL_JUMP); + + if (param_0 == 2) { + setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f, + daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame, + daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation); + setJumpMode(); + speed.y = 24.0f; + voiceStart(Z2SE_AL_V_JUMP_S); + field_0x2f99 = 15; + field_0x33b0 = field_0x3588.y; + field_0x34d4 = l_waitBaseAnime; + } else { + setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm); + + if (param_0 == 1) { + field_0x3478 = field_0x27f4->current.pos.y + 20.0f; + if (field_0x3478 < current.pos.y + 30.0f) { + field_0x3478 = current.pos.y + 30.0f; + } + + daCanoe_c* canoe_p = (daCanoe_c*)field_0x27f4; + cXyz sp8(canoe_p->current.pos); + if (canoe_p->checkTandem()) { + sp8.x += cM_ssin(canoe_p->shape_angle.y) * 175.0f; + sp8.z += cM_scos(canoe_p->shape_angle.y) * 175.0f; + } + + field_0x300c = cLib_targetAngleY(¤t.pos, &sp8); + field_0x300e.x = 1; + setHeavyBoots(0); + } else { + field_0x3478 = field_0x34ec.y; + field_0x300e.x = 0; + } + } + + mNormalSpeed = 0.0f; + field_0x33b0 = l_waitBaseAnime.y; + field_0x3588 = l_waitBaseAnime; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1316,8 +2016,53 @@ asm int daAlink_c::procSmallJumpInit(int param_0) { #include "asm/d/a/d_a_alink/procSmallJumpInit__9daAlink_cFi.s" } #pragma pop +#endif /* 800C72D4-800C74D4 0C1C14 0200+00 1/0 0/0 0/0 .text procSmallJump__9daAlink_cFv */ +// one out of order block with sqrt +#ifdef NONMATCHING +int daAlink_c::procSmallJump() { + if (i_checkModeFlg(2)) { + if (checkCanoeJumpRide()) { + return 1; + } + + if (mLinkAcch.ChkGroundHit()) { + checkLandAction(0); + } else if (speed.y < -mGravity) { + procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation); + } else { + field_0x2f99 = 7; + } + } else if (mUnderFrameCtrl[0].checkPass(6.0f)) { + setJumpMode(); + mNormalSpeed = daAlinkHIO_smallJump_c0::m.mSpeedH; + + if (checkHeavyStateOn(1, 1) && !i_checkNoResetFlg0(FLG0_UNDERWATER)) { + speed.y = JMAFastSqrt(2.0f * ((daAlinkHIO_smallJump_c0::m.mTargetHeightOffset + + (field_0x3478 - current.pos.y)) * + -(mGravity * 2.25f))); + } else { + speed.y = + JMAFastSqrt(2.0f * (-mGravity * (daAlinkHIO_smallJump_c0::m.mTargetHeightOffset + + (field_0x3478 - current.pos.y)))); + } + + voiceStart(Z2SE_AL_V_JUMP_S); + field_0x2f99 = 7; + + if (field_0x300e.x != 0) { + shape_angle.y = field_0x300c; + current.angle.y = shape_angle.y; + } + } else if (field_0x300e.x != 0) { + cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 3, 0x1000, 0x400); + current.angle.y = shape_angle.y; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1326,6 +2071,7 @@ asm int daAlink_c::procSmallJump() { #include "asm/d/a/d_a_alink/procSmallJump__9daAlink_cFv.s" } #pragma pop +#endif /* 800C74D4-800C755C 0C1E14 0088+00 1/1 0/0 0/0 .text procStepMoveInit__9daAlink_cFv */ int daAlink_c::procStepMoveInit() { @@ -1426,7 +2172,7 @@ static u8 lit_4419[12]; /* 80425604-80425610 052324 000C+00 0/1 0/0 0/0 .bss l_sumouBaseAnimeSp */ #pragma push #pragma force_active on -static u8 l_sumouBaseAnimeSp[12]; +static Vec l_sumouBaseAnimeSp; // change to cXyz later #pragma pop /* 80425610-8042561C 052330 000C+00 0/1 0/0 0/0 .bss @4420 */ @@ -1436,7 +2182,7 @@ static u8 lit_4420[12]; #pragma pop /* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */ -static Vec l_wolfBaseAnime; +static Vec l_wolfBaseAnime; // change to cXyz later BOOL daMidna_c::checkMidnaRealBody() { return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3); @@ -1463,8 +2209,8 @@ int daAlink_c::procCoMetamorphoseInit() { field_0x3198 = var_r29; field_0x3008 = 0; - field_0x300e = 0; - field_0x3010 = 0; + field_0x300e.x = 0; + field_0x300e.y = 0; field_0x347c = 1.0f; mFallVoiceInit = 0; @@ -1482,7 +2228,7 @@ int daAlink_c::procCoMetamorphoseInit() { deleteEquipItem(FALSE, TRUE); if (i_checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) { - field_0x3010 = 1; + field_0x300e.y = 1; } field_0x300a = 0; @@ -1555,7 +2301,7 @@ int daAlink_c::procCoMetamorphoseInit() { } speed.y = 0.0f; mNormalSpeed = 0.0f; - field_0x3012 = 0; + field_0x300e.z = 0; } field_0x3484 = current.pos.y; @@ -1636,10 +2382,10 @@ int daAlink_c::procCoMetamorphoseOnlyInit() { (!i_checkWolf() && mDemo.getDemoMode() == 0x47)) { field_0x300c = 1; - field_0x300e = 1; + field_0x300e.x = 1; } else { field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; } f32 tmp_0 = FLOAT_LABEL(lit_6108); @@ -1656,8 +2402,8 @@ int daAlink_c::procCoMetamorphoseOnly() { mClothesChangeWaitTimer = 4; field_0x300c = 1; } else if (mClothesChangeWaitTimer == 0) { - if (field_0x300e == 0) { - field_0x300e = 1; + if (field_0x300e.x == 0) { + field_0x300e.x = 1; if (i_checkWolf()) { setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, @@ -1795,7 +2541,9 @@ int daAlink_c::execute() { if (dComIfGp_event_runCheck()) { field_0x3184 = dComIfGp_evmng_getMyStaffId("Alink", this, 0); - if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == noentry71) { + if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && + mEquipItem == noentry71) + { deleteEquipItem(FALSE, FALSE); } } @@ -1928,7 +2676,7 @@ int daAlink_c::execute() { } mGrabItemAcKeep.setActor(); - field_0x284c.setActor(); + mHookTargetAcKeep.setActor(); field_0x285c.setActor(); if (checkFishingRodAndLureItem() && mItemAcKeep.getActor() == NULL) { @@ -2941,6 +3689,349 @@ void daAlink_c::initTevCustomColor() { } /* 800CC7FC-800CD78C 0C713C 0F90+00 1/1 0/0 0/0 .text draw__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::draw() { + if (i_checkWolf()) { + g_env_light.settingTevStruct(9, ¤t.pos, &mTevStr); + } else { + g_env_light.settingTevStruct(10, ¤t.pos, &mTevStr); + } + + initTevCustomColor(); + + if (mSight.getDrawFlg() && !checkEventRun()) { + mSight.setSight(); + } + + if (i_checkNoResetFlg1(FLG1_UNK_80)) { + JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x31c4); + if (emitter_p != NULL) { + if (checkPlayerNoDraw() && !i_checkEndResetFlg1(ERFLG1_UNK_4)) { + emitter_p->stopDrawParticle(); + } else { + emitter_p->playDrawParticle(); + } + } + } + + if (mClothesChangeWaitTimer != 0) { + if (mProcID == PROC_METAMORPHOSE) { + if (field_0x300e > 0) { + mTevStr.mFogColor.r = 255; + } else { + mTevStr.mFogColor.r = -255; + } + + mTevStr.mFogColor.g = mTevStr.mFogColor.r; + mTevStr.mFogColor.b = mTevStr.mFogColor.r; + + g_env_light.setLightTevColorType_MAJI(mpWlChangeModel, &mTevStr); + mDoExt_modelEntryDL(mpWlChangeModel); + } + return 1; + } + + BOOL temp_r30 = checkPlayerNoDraw(); + BOOL var_r29 = 0; + BOOL var_r31 = 1; + + if (field_0x06f4 != NULL) { + field_0x06f4->getTevColorReg(0, &mTevStr.mFogColor); + } else if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_DUNGEON_WARP || + mProcID == PROC_DUNGEON_WARP_SCN_START) + { + mTevStr.mFogColor.r = field_0x300e.x; + mTevStr.mFogColor.g = field_0x300e.x; + mTevStr.mFogColor.b = field_0x300e.x; + } else if (field_0x346c != 0.0f) { + f32 var_f2 = fabsf(field_0x346c); + mTevStr.mFogColor.r = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropR; + mTevStr.mFogColor.g = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropG; + mTevStr.mFogColor.b = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropB; + } else if (checkFreezeDamage()) { + mTevStr.mFogColor.r = daAlinkHIO_damage_c0::m.mFreezeR; + mTevStr.mFogColor.g = daAlinkHIO_damage_c0::m.mFreezeG; + mTevStr.mFogColor.b = daAlinkHIO_damage_c0::m.mFreezeB; + } else if (mDamageTimer != 0) { + if (!checkMagicArmorNoDamage()) { + int color_timer = mDamageTimer + mDamageColorTime; + + int r, g, b; + if (color_timer > 32) { + r = daAlinkHIO_damage_c0::m.mDamageR0; + g = daAlinkHIO_damage_c0::m.mDamageG0; + b = daAlinkHIO_damage_c0::m.mDamageB0; + } else if (color_timer > 16) { + r = daAlinkHIO_damage_c0::m.mDamageR1; + g = daAlinkHIO_damage_c0::m.mDamageG1; + b = daAlinkHIO_damage_c0::m.mDamageB1; + } else { + r = daAlinkHIO_damage_c0::m.mDamageR2; + g = daAlinkHIO_damage_c0::m.mDamageG2; + b = daAlinkHIO_damage_c0::m.mDamageB2; + } + + f32 var_f2 = fabsf(cM_ssin(color_timer * 0x800)); + mTevStr.field_0x360 = r * var_f2; + mTevStr.field_0x361 = g * var_f2; + mTevStr.field_0x362 = b * var_f2; + var_r31 = 0; + } + } else if (field_0x3006 != 0) { + f32 temp_f4 = 1.0f - (field_0x3006 * (1.0f / daAlinkHIO_damage_c0::m.mFreezeTime)); + f32 temp_f3 = 1.0f - temp_f4; + + mTevStr.mFogColor.r = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitR) + + (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeR); + mTevStr.mFogColor.g = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitG) + + (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeG); + mTevStr.mFogColor.b = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitB) + + (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeB); + } else if (field_0x32b0[0].r != 0) { + mTevStr.mFogColor.r = field_0x32b0[0].r; + mTevStr.mFogColor.g = field_0x32b0[0].g; + mTevStr.mFogColor.b = field_0x32b0[0].b; + var_r29 = 1; + } else { + var_r31 = 0; + } + + if (!i_checkWolf()) { + if (var_r31) { + if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { + mpLinkModel->getModelData()->removeTevRegAnimator(mMagicArmorBodyBrk); + mpLinkHatModel->getModelData()->removeTevRegAnimator(mMagicArmorHeadBrk); + } + + if (var_r29) { + setWaterDropColor(&field_0x32b0[1]); + } else { + mSwordUpColorIntensity = 0.0f; + setWaterDropColor((J3DGXColorS10*)&mTevStr.mFogColor); + } + } else { + if (checkMagicArmorWearAbility()) { + mpLinkModel->getModelData()->entryTevRegAnimator(mMagicArmorBodyBrk); + mpLinkHatModel->getModelData()->entryTevRegAnimator(mMagicArmorHeadBrk); + } + + setWaterDropColor(&field_0x32a0[0]); + } + } else if (var_r31 && !var_r29) { + mSwordUpColorIntensity = 0.0f; + } + + if (i_checkWolf()) { + dComIfGd_setListDark(); + modelDraw(mpLinkModel, temp_r30); + + if (i_dComIfGs_isEventBit(0x510)) { + for (int i = 0; i < 4; i++) { + modelDraw(mpWlChainModels[i], temp_r30); + } + } + + mTevStr.field_0x360 = 0; + mTevStr.field_0x361 = 0; + mTevStr.field_0x362 = 0; + + if (checkSwordDraw()) { + modelDraw(mSwordModel, temp_r30); + modelDraw(mSheathModel, temp_r30); + } + + if (checkShieldDraw()) { + modelDraw(mShieldModel, temp_r30); + } + + if (mHeldItemModel != NULL) { + if (mEquipItem == 0x109) { + dComIfGd_setListMiddle(); + } else if (mEquipItem == 0x10A) { + mHeldItemModel->getModelData()->entryTexMtxAnimator(field_0x0718); + } + + modelDraw(mHeldItemModel, temp_r30); + } + + dComIfGd_setList(); + } else { + setDrawHand(); + + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { + if (field_0x06e8 != NULL) { + field_0x06e8->hide(); + } + + field_0x06f0->hide(); + + if (checkHookshotReadyMaterialOffMode()) { + for (u16 i = 0; i < mFallVoiceInit; i++) { + if (!(field_0x32cc & (1 << i))) { + field_0x064C->getMaterialNodePointer(i)->getShape()->hide(); + } + } + } + } + + modelDraw(mpLinkModel, temp_r30); + + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { + if (checkHookshotReadyMaterialOffMode()) { + for (u16 i = 0; i < mFallVoiceInit; i++) { + if (!(field_0x32cc & (1 << i))) { + field_0x064C->getMaterialNodePointer(i)->getShape()->show(); + } + } + + if (!checkZoraWearMaskDraw() && checkZoraWearAbility()) { + field_0x06f0->hide(); + } + } + + if (field_0x06e8 != NULL) { + field_0x06e8->show(); + } + + if (checkZoraWearMaskDraw() || !checkZoraWearAbility()) { + field_0x06f0->show(); + } + } + + modelDraw(field_0x065c, temp_r30); + if (field_0x2f92 == 0xFB) { + modelDraw(mpDemoHLTmpModel, temp_r30); + } + + if (field_0x2f93 == 0xFB) { + modelDraw(mpDemoHRTmpModel, temp_r30); + } + + BOOL var_r3 = temp_r30 || dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20); + + modelDraw(mpLinkHatModel, var_r3); + + if (i_checkNoResetFlg1(FLG1_UNK_10)) { + modelDraw(mpDemoFCBlendModel, var_r3); + modelDraw(mpDemoFCTongueModel, var_r3); + } else { + modelDraw(mpLinkFaceModel, var_r3); + } + + mTevStr.field_0x360 = 0; + mTevStr.field_0x361 = 0; + mTevStr.field_0x362 = 0; + + if (checkSwordDraw()) { + if (!i_checkNoResetFlg3(FLG3_UNK_80000000)) { + modelDraw(mSwordModel, var_r3); + } + + if (!checkWoodSwordEquip()) { + modelDraw(mSheathModel, var_r3); + } + } + + if (checkShieldDraw()) { + BOOL var_r24_2; + if (checkWoodShieldEquip() && field_0x2fcb != 0 && mProcID != PROC_METAMORPHOSE) { + mTevStr.mFogColor.r = -((120 - field_0x2fcb) * 32) / 120; + mTevStr.mFogColor.g = mTevStr.mFogColor.r; + mTevStr.mFogColor.b = mTevStr.mFogColor.r; + var_r24_2 = 1; + } else { + var_r24_2 = 0; + } + + modelDraw(mShieldModel, var_r3); + if (var_r24_2) { + mTevStr.mFogColor.r = 0; + mTevStr.mFogColor.g = 0; + mTevStr.mFogColor.b = 0; + } + } + + if (var_r29) { + mTevStr.mFogColor.r = 0; + mTevStr.mFogColor.g = 0; + mTevStr.mFogColor.b = 0; + } + + if (checkItemDraw()) { + changeHookshotDrawModel(); + modelDraw(mHeldItemModel, temp_r30); + + if (mpHookTipModel != NULL) { + modelDraw(mpHookTipModel, temp_r30); + } + + if (mEquipItem == W_HOOKSHOT && !checkPlayerGuardAndAttack() && + !i_checkNoResetFlg0(FLG0_UNK_2)) + { + if (field_0x0710 != NULL) { + modelDraw(field_0x0710, temp_r30); + } + + if (field_0x0714 != NULL) { + modelDraw(field_0x0714, temp_r30); + } + } + + changeHookshotDrawModel(); + + if (mpHookChain != NULL && !temp_r30 && + ((checkHookshotItem(mEquipItem) && (mHeldItemRootPos.abs(mHookshotTopPos) > 1.0f || + field_0x3810.abs(mIronBallBgChkPos) > 1.0f)) || + mEquipItem == IRONBALL)) + { + dComIfGd_getOpaListDark()->entryImm(mpHookChain, 0); + } + } + + if (i_checkNoResetFlg2(FLG2_UNK_1)) { + modelDraw(field_0x06fc, temp_r30); + preKandelaarDraw(); + modelDraw(field_0x0700, temp_r30); + } else if (i_checkNoResetFlg2(FLG2_UNK_20000)) { + basicModelDraw(field_0x06fc); + preKandelaarDraw(); + basicModelDraw(field_0x0700); + } + + if (i_checkEquipHeavyBoots()) { + GXColorS10 color = mTevStr.mFogColor; + for (int i = 0; i < 2; i++) { + JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x3228[i][0]); + + if (emitter_p != NULL) { + mTevStr.mFogColor.r = 5; + mTevStr.mFogColor.g = mTevStr.mFogColor.r; + mTevStr.mFogColor.b = mTevStr.mFogColor.r; + } else { + mTevStr.mFogColor = color; + } + + modelDraw(field_0x784[i], temp_r30); + } + + mTevStr.mFogColor = color; + } + } + + if (!checkCanoeRide() && !dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x10000) && + !i_checkNoResetFlg2(FLG2_UNK_400)) + { + shadowDraw(); + } + + if (m_swordBlur.field_0x14 > 0) { + dComIfGd_entryZSortXluList(&m_swordBlur, m_swordBlur.field_0x308[0]); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2949,6 +4040,7 @@ asm int daAlink_c::draw() { #include "asm/d/a/d_a_alink/draw__9daAlink_cFv.s" } #pragma pop +#endif /* 800CD78C-800CD7AC 0C80CC 0020+00 1/0 0/0 0/0 .text daAlink_Draw__FP9daAlink_c */ static int daAlink_Draw(daAlink_c* i_this) { @@ -2991,6 +4083,44 @@ SECTION_DATA extern void* __vt__29dAlink_bottleWaterPcallBack_c[5] = { }; /* 800CD7AC-800CE208 0C80EC 0A5C+00 1/1 0/0 0/0 .text __dt__9daAlink_cFv */ +// matches with vtables +#ifdef NONMATCHING +daAlink_c::~daAlink_c() { + dComIfGp_clearPlayerStatus0(0, ~0x400030); + dComIfGp_clearPlayerStatus1(0, 0x7FB7B78); + + mZ2Link.deleteKantera(); + mZ2Link.deleteObject(); + if (mpHookSound != NULL) { + mpHookSound->deleteObject(); + mpHookSound = NULL; + } + + if (i_checkNoResetFlg2(FLG2_UNK_80)) { + i_offNoResetFlg2(FLG2_UNK_80); + dComIfGp_2dShowOn(); + } + + if (mProcID == PROC_WARP || (mProcID == PROC_TOOL_DEMO && field_0x300c != 0)) { + changeWarpMaterial(WARP_MAT_MODE_1); + } + + dComIfG_resDelete(&mPhaseReq, mArcName); + if (field_0x0638 != NULL) { + mDoExt_destroyExpHeap(field_0x0638); + } + + dComIfG_resDelete(&mShieldPhaseReq, mShieldArcName); + if (field_0x0648 != NULL) { + mDoExt_destroyExpHeap(field_0x0648); + } + + dKy_plight_cut(&field_0x2f5c); + + dComIfGp_setPlayer(0, NULL); + dComIfGp_setLinkPlayer(NULL); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2999,10 +4129,9 @@ asm daAlink_c::~daAlink_c() { #include "asm/d/a/d_a_alink/__dt__9daAlink_cFv.s" } #pragma pop +#endif /* 800CE208-800CE294 0C8B48 008C+00 1/0 0/0 0/0 .text daAlink_Delete__FP9daAlink_c */ -// destructor issue -#ifdef NONMATCHING static int daAlink_Delete(daAlink_c* i_this) { if (i_this->getClothesChangeWaitTimer() != 0) { i_this->loadModelDVD(); @@ -3011,30 +4140,23 @@ static int daAlink_Delete(daAlink_c* i_this) { i_this->loadShieldModelDVD(); return 0; } else { - delete i_this; + i_this->~daAlink_c(); return 1; } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int daAlink_Delete(daAlink_c* i_this) { - nofralloc -#include "asm/d/a/d_a_alink/daAlink_Delete__FP9daAlink_c.s" -} -#pragma pop -#endif /* 800CE294-800CE468 0C8BD4 01D4+00 1/1 0/0 0/0 .text checkNoSubjectModeCamera__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkNoSubjectModeCamera() { - nofralloc -#include "asm/d/a/d_a_alink/checkNoSubjectModeCamera__9daAlink_cFv.s" +bool daAlink_c::checkNoSubjectModeCamera() { + return dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("Rotary") || + dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("Rampart2") || + dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("Allay") || + dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("AllayR") || + dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("AllayR2") || + dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("AllayS") || + checkCargoCarry() || + dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("StreetP") || + dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("Street"); } -#pragma pop /* 800CE468-800CE628 0C8DA8 01C0+00 2/2 0/0 0/0 .text acceptSubjectModeChange__9daAlink_cFv */ #pragma push @@ -3305,12 +4427,18 @@ MtxP daAlink_c::getRightItemMatrix() { } /* 800CF344-800CF380 0C9C84 003C+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daAlink_cFv */ -BOOL daAlink_c::checkPlayerNoDraw() { +u32 daAlink_c::checkPlayerNoDraw() { return dComIfGp_checkCameraAttentionStatus(field_0x317c, 2) || i_checkNoResetFlg0(FLG0_PLAYER_NO_DRAW); } /* 800CF380-800CFC3C 0C9CC0 08BC+00 1/1 0/0 0/0 .text __ct__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +daAlink_c::daAlink_c() + : mAnmHeap3(0), mAnmHeap4(0), mFaceBtpHeap(0x800), mFaceBtkHeap(0x400), mFaceBckHeap(0xC00), + mAnmHeap9(0x800) {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3319,6 +4447,7 @@ asm daAlink_c::daAlink_c() { #include "asm/d/a/d_a_alink/__ct__9daAlink_cFv.s" } #pragma pop +#endif /* 800CFC3C-800CFC78 0CA57C 003C+00 2/2 0/0 0/0 .text __dt__Q29daAlink_c14firePointEff_cFv */ daAlink_c::firePointEff_c::~firePointEff_c() {} @@ -3347,13 +4476,22 @@ daAlink_footData_c::daAlink_footData_c() { } /* 800CFCF8-800CFD58 0CA638 0060+00 1/0 0/0 0/0 .text __dt__29dAlink_bottleWaterPcallBack_cFv */ -dAlink_bottleWaterPcallBack_c::~dAlink_bottleWaterPcallBack_c() {} +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dAlink_bottleWaterPcallBack_c::~dAlink_bottleWaterPcallBack_c() { +extern "C" asm void __dt__29dAlink_bottleWaterPcallBack_cFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__29dAlink_bottleWaterPcallBack_cFv.s" +} +#pragma pop /* 800CFD58-800CFDF4 0CA698 009C+00 1/0 0/0 0/0 .text __dt__14daAlink_blur_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm daAlink_blur_c::~daAlink_blur_c() { +// asm daAlink_blur_c::~daAlink_blur_c() { +extern "C" asm void __dt__14daAlink_blur_cFv() { nofralloc #include "asm/d/a/d_a_alink/__dt__14daAlink_blur_cFv.s" } @@ -3363,14 +4501,23 @@ asm daAlink_blur_c::~daAlink_blur_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm daAlink_sight_c::~daAlink_sight_c() { +// asm daAlink_sight_c::~daAlink_sight_c() { +extern "C" asm void __dt__15daAlink_sight_cFv() { nofralloc #include "asm/d/a/d_a_alink/__dt__15daAlink_sight_cFv.s" } #pragma pop /* 800CFE68-800CFEB0 0CA7A8 0048+00 1/0 0/0 0/0 .text __dt__20daAlink_lockCursor_cFv */ -daAlink_lockCursor_c::~daAlink_lockCursor_c() {} +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm daAlink_lockCursor_c::~daAlink_lockCursor_c() { +extern "C" asm void __dt__20daAlink_lockCursor_cFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__20daAlink_lockCursor_cFv.s" +} +#pragma pop /* 800CFEB0-800CFEC4 0CA7F0 0014+00 1/1 0/0 0/0 .text checkRideOn__9daAlink_cCFv */ BOOL daAlink_c::checkRideOn() const { @@ -3577,7 +4724,7 @@ s16 daAlink_c::getSumouCounter() const { /* 800D027C-800D0284 0CABBC 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daAlink_cCFv */ s16 daAlink_c::checkSumouWithstand() const { - return field_0x300e; + return field_0x300e.x; } /* 800D0284-800D0290 0CABC4 000C+00 1/0 0/0 0/0 .text setMidnaMsgNum__9daAlink_cFP10fopAc_ac_cUs @@ -3702,7 +4849,7 @@ BOOL daAlink_c::checkGuardBreakMode() const { /* 800D047C-800D04A4 0CADBC 0028+00 1/0 0/0 0/0 .text checkLv3Slide__9daAlink_cCFv */ bool daAlink_c::checkLv3Slide() const { - return mProcID == PROC_SLIDE && field_0x300e != 0; + return mProcID == PROC_SLIDE && field_0x300e.x != 0; } /* 800D04A4-800D04B8 0CADE4 0014+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daAlink_cCFv */ @@ -3793,7 +4940,7 @@ BOOL daAlink_c::checkWolfRSit() const { /* 800D0638-800D0660 0CAF78 0028+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daAlink_cCFv */ BOOL daAlink_c::checkBottleDrinkEnd() const { - return mProcID == PROC_BOTTLE_DRINK && field_0x300e != 0; + return mProcID == PROC_BOTTLE_DRINK && field_0x300e.x != 0; } /* 800D0660-800D0674 0CAFA0 0014+00 1/0 0/0 0/0 .text checkWolfDig__9daAlink_cCFv */ @@ -3881,7 +5028,7 @@ void daAlink_c::onSceneChangeDead(u8 param_0, int param_1) { if (mProcID != PROC_DEAD) { return; } - field_0x3012 = param_0; + field_0x300e.z = param_0; field_0x3198 = param_1; } @@ -3894,7 +5041,7 @@ bool daAlink_c::checkNoEquipItem() const { */ s16 daAlink_c::getBoardCutTurnOffsetAngleY() const { if (mProcID == PROC_BOARD_CUT_TURN) { - return field_0x3012; + return field_0x300e.z; } return 0; } @@ -3930,7 +5077,7 @@ void daAlink_c::setSumouPushBackDirection(s16 param_0) { if (mProcID != PROC_SUMOU_MOVE) { return; } - field_0x3010 = param_0; + field_0x300e.y = param_0; } /* 800D0930-800D0948 0CB270 0018+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daAlink_cFv */ @@ -3958,7 +5105,7 @@ void daAlink_c::setWolfEnemyHangBiteAngle(s16 angle) { if (mProcID != PROC_WOLF_ENEMY_HANG_BITE) { return; } - field_0x3010 = angle; + field_0x300e.y = angle; } /* 800D0984-800D0998 0CB2C4 0014+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daAlink_cFi */ @@ -4036,12 +5183,12 @@ bool daAlink_c::checkCopyRodEquip() const { /* 800D0A44-800D0A6C 0CB384 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daAlink_cCFv */ bool daAlink_c::checkCanoeFishingGetLeft() const { - return mProcID == PROC_CANOE_FISHING_GET && field_0x300e == 0; + return mProcID == PROC_CANOE_FISHING_GET && field_0x300e.x == 0; } /* 800D0A6C-800D0A94 0CB3AC 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daAlink_cCFv */ bool daAlink_c::checkCanoeFishingGetRight() const { - return mProcID == PROC_CANOE_FISHING_GET && field_0x300e == 1; + return mProcID == PROC_CANOE_FISHING_GET && field_0x300e.x == 1; } /* 800D0A94-800D0A9C 0CB3D4 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daAlink_cCFv @@ -4070,7 +5217,7 @@ void daAlink_c::cancelOctaIealHang() { if (mProcID != PROC_BOSS_BODY_HANG) { return; } - field_0x300e = 1; + field_0x300e.x = 1; } /* 800D0B08-800D0B20 0CB448 0018+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daAlink_cFv */ @@ -4078,7 +5225,7 @@ void daAlink_c::cancelDragonHangBackJump() { if (mProcID != PROC_BOSS_BODY_HANG) { return; } - field_0x300e = -1; + field_0x300e.x = -1; } /* 800D0B20-800D0B38 0CB460 0018+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daAlink_cFv diff --git a/src/d/a/d_a_alink_spinner.inc b/src/d/a/d_a_alink_spinner.inc index 5a82a47f91..b218220b3b 100644 --- a/src/d/a/d_a_alink_spinner.inc +++ b/src/d/a/d_a_alink_spinner.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_spinner.inc + * Player Spinner action handling + */ + #include "rel/d/a/d_a_spinner/d_a_spinner.h" /* 8010D93C-8010D94C 10827C 0010+00 0/0 0/0 1/1 .text getSpinnerGravity__9daAlink_cCFv */ @@ -199,11 +204,11 @@ int daAlink_c::procSpinnerWaitInit() { mNormalSpeed = 0.0f; field_0x300c = 0; - field_0x300e = shape_angle.y; - field_0x3010 = 0; + field_0x300e.x = shape_angle.y; + field_0x300e.y = 0; field_0x3198 = ANM_RIDE_CROUCH; field_0x33b0 = 70.0f; - field_0x3012 = 0; + field_0x300e.z = 0; field_0x37a4 = mRideAcKeep.getActor()->current.pos; return 1; @@ -253,7 +258,7 @@ int daAlink_c::procSpinnerWait() { } current.angle.y = shape_angle.y; - field_0x300e = shape_angle.y; + field_0x300e.x = shape_angle.y; } } else { if (checkSetItemTrigger(SPINNER) || swordSwingTrigger() || itemSetBtn == 2) { @@ -280,7 +285,7 @@ int daAlink_c::procSpinnerWait() { current.angle.y = spinner->current.angle.y; if (spinner->checkSpinnerTagIntoIncRot()) { - field_0x3012 = 1; + field_0x300e.z = 1; setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION); if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) { @@ -290,7 +295,7 @@ int daAlink_c::procSpinnerWait() { fopAcM_seStartCurrent(spinner, Z2SE_OBJ_SPNR_SW_PUSH, 0); } } else if (spinner->checkSpinnerTagInto()) { - if (field_0x3012 != 0) { + if (field_0x300e.z != 0) { setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION); } else { setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_DEFAULT); @@ -307,18 +312,18 @@ int daAlink_c::procSpinnerWait() { setSingleAnime(ANM_RIDE_JUMP, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation); - field_0x3010 = 0; + field_0x300e.y = 0; } else if (field_0x3198 == ANM_RIDE_JUMP) { if (!spinner->getJumpFlg()) { setSingleAnime(ANM_RIDE_JUMP_LAND, daAlinkHIO_board_c0::m.mLandAnm.mSpeed, daAlinkHIO_board_c0::m.mLandAnm.mStartFrame, 16, daAlinkHIO_board_c0::m.mLandAnm.mInterpolation); field_0x3198 = ANM_RIDE_JUMP_LAND; - } else if (field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.01f) { + } else if (field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < 0.01f) { setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f); - field_0x3010 = 1; + field_0x300e.y = 1; } } else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) || (field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) { @@ -329,7 +334,7 @@ int daAlink_c::procSpinnerWait() { } setSpinnerSyncPos(); - shape_angle.y = field_0x300e; + shape_angle.y = field_0x300e.x; return 1; } diff --git a/src/d/a/d_a_alink_sumou.inc b/src/d/a/d_a_alink_sumou.inc index d9712988e0..85557d523c 100644 --- a/src/d/a/d_a_alink_sumou.inc +++ b/src/d/a/d_a_alink_sumou.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_sumou.inc + * Player Sumo action handling + */ + /* 800EA844-800EA8D0 0E5184 008C+00 5/5 0/0 0/0 .text checkSumouVsActor__9daAlink_cFv */ BOOL daAlink_c::checkSumouVsActor() { mCargoCarryAcKeep.setActor(); @@ -47,7 +52,7 @@ int daAlink_c::procSumouReadyInit() { field_0x2f99 = 4; mSpecialMode = 1; field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; deleteEquipItem(0, 1); if (mThrowBoomerangAcKeep.getActor() != NULL) { diff --git a/src/d/a/d_a_alink_swim.inc b/src/d/a/d_a_alink_swim.inc index f6b6f15256..d163eb2035 100644 --- a/src/d/a/d_a_alink_swim.inc +++ b/src/d/a/d_a_alink_swim.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_link.inc + * Player Swim action handling + */ + #include "f_op/f_op_kankyo_mng.h" /* 80101890-801018E4 0FC1D0 0054+00 6/6 0/0 0/0 .text checkZoraWearMaskDraw__9daAlink_cFv @@ -390,7 +395,7 @@ int daAlink_c::procSwimUpInit() { setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mResurfaceAnm); dComIfGp_setPlayerStatus0(0, 0x100000); field_0x3008 = 0; - field_0x3010 = 0; + field_0x300e.y = 0; field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight; field_0x3000 = 0; @@ -443,10 +448,10 @@ int daAlink_c::procSwimWaitInit(int param_0) { if (param_0) { seStartMapInfo(Z2SE_AL_INTO_WATER); - field_0x3010 = 0; + field_0x300e.y = 0; field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight; } else if (!mode_40000) { - field_0x3010 = 0; + field_0x300e.y = 0; field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight; } @@ -547,7 +552,7 @@ int daAlink_c::procSwimMoveInit() { if (!mode_40000) { field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight; - field_0x3010 = 0; + field_0x300e.y = 0; } if (proc_swim_dive || proc_dive_jump) { @@ -555,8 +560,8 @@ int daAlink_c::procSwimMoveInit() { if (proc_dive_jump) { field_0x3080 = 0x2800; - field_0x300e = field_0x3080; - field_0x3010 = 1; + field_0x300e.x = field_0x3080; + field_0x300e.y = 1; setOldRootQuaternion(-field_0x3080, 0, 0); } } else { @@ -636,7 +641,7 @@ int daAlink_c::procSwimDiveInit() { field_0x2f99 = 0x10; field_0x3588 = l_waitBaseAnime; field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight; - field_0x3010 = 0; + field_0x300e.y = 0; dComIfGp_setPlayerStatus0(0, 0x100000); field_0x3000 = 30; @@ -691,8 +696,8 @@ int daAlink_c::procSwimDive() { if (field_0x300c != 0) { field_0x3080 = 0x2800; - field_0x300e = field_0x3080; - field_0x3010 = 1; + field_0x300e.x = field_0x3080; + field_0x300e.y = 1; } setOldRootQuaternion(-field_0x3080, 0, 0); @@ -743,7 +748,7 @@ int daAlink_c::procSwimHookshotSubjectInit() { field_0x594 = getSwimFrontMaxSpeed(); field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight; - field_0x3010 = 0; + field_0x300e.y = 0; field_0x30d0 = 0; setHookshotReadyMaterial(); @@ -821,7 +826,7 @@ int daAlink_c::procSwimHookshotMoveInit() { } field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight; - field_0x3010 = 0; + field_0x300e.y = 0; field_0x30d0 = 0; dComIfGp_setPlayerStatus0(0, 0x104000); diff --git a/src/d/a/d_a_alink_swindow.inc b/src/d/a/d_a_alink_swindow.inc index 283e6bc8bd..5ec3e6cb64 100644 --- a/src/d/a/d_a_alink_swindow.inc +++ b/src/d/a/d_a_alink_swindow.inc @@ -1,3 +1,194 @@ +/** + * d_a_alink_swindow.inc + * Pause Menu Player Display + */ + +/* 8013FF28-8013FF90 13A868 0068+00 2/2 0/0 0/0 .text setArcName__9daAlink_cFi */ +void daAlink_c::setArcName(int isWolf) { + if (isWolf) { + mArcName = l_wArcName; + return; + } + + if (checkCasualWearFlg()) { + mArcName = l_bArcName; + return; + } + + if (checkZoraWearFlg()) { + mArcName = l_zArcName; + return; + } + + if (checkMagicArmorWearFlg()) { + mArcName = l_mArcName; + return; + } + + mArcName = l_kArcName; +} + +inline bool checkCarvingWoodShieldEquip() { + return dComIfGs_getSelectEquipShield() == WOOD_SHIELD; +} + +inline bool checkShopWoodShieldEquip() { + return dComIfGs_getSelectEquipShield() == SHIELD; +} + +/* 8013FF90-8013FFD8 13A8D0 0048+00 2/2 0/0 0/0 .text setShieldArcName__9daAlink_cFv */ +void daAlink_c::setShieldArcName() { + if (checkCarvingWoodShieldEquip() || !i_checkShieldGet()) { + mShieldArcName = l_cWShdArcName; + return; + } + + if (checkShopWoodShieldEquip()) { + mShieldArcName = l_sWShdArcName; + return; + } + + mShieldArcName = l_hyShdArcName; +} + +/* 8013FFD8-80140038 13A918 0060+00 1/1 0/0 0/0 .text setOriginalHeap__9daAlink_cFPP10JKRExpHeapUl + */ +void daAlink_c::setOriginalHeap(JKRExpHeap** p_heap, u32 param_1) { + if (*p_heap == NULL) { + *p_heap = + JKRExpHeap::create((param_1 + 0xF & 0xFFFFFFF0) + 0xA0, mDoExt_getGameHeap(), true); + } +} + +/* 80140038-80140064 13A978 002C+00 1/0 0/0 0/0 .text setClothesChange__9daAlink_cFi */ +void daAlink_c::setClothesChange(int param_0) { + if (i_checkWolf()) { + return; + } + + mClothesChangeWaitTimer = 4; + if (param_0 == 0) { + return; + } + + i_onNoResetFlg2(FLG2_UNK_200000); +} + +/* 80140064-80140070 13A9A4 000C+00 0/0 1/1 0/0 .text setShieldChange__9daAlink_cFv */ +void daAlink_c::setShieldChange() { + mShieldChangeWaitTimer = 4; +} + +/* 80140070-801401F8 13A9B0 0188+00 3/3 0/0 0/0 .text loadModelDVD__9daAlink_cFv */ +int daAlink_c::loadModelDVD() { + if (mClothesChangeWaitTimer != 0) { + mClothesChangeWaitTimer--; + + if (mClothesChangeWaitTimer == 2) { + mEyeHL1.remove(); + mEyeHL2.remove(); + field_0x79c = NULL; + mpWlMidnaHatModel = NULL; + field_0x7a4 = NULL; + mpWlMidnaHairModel = NULL; + + if (!i_checkNoResetFlg2(FLG2_UNK_280000)) { + dComIfG_resDelete(&mPhaseReq, mArcName); + cPhs_Reset(&mPhaseReq); + field_0x0638->freeAll(); + + if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_METAMORPHOSE_ONLY) { + setArcName(!i_checkWolf()); + } else { + setArcName(i_checkWolf()); + } + } + } else if (mClothesChangeWaitTimer == 1) { + if (i_checkNoResetFlg2(FLG2_UNK_280000)) { + mClothesChangeWaitTimer = 0; + changeLink(1); + } else { + if (dComIfG_resLoad(&mPhaseReq, mArcName, field_0x0638) == cPhs_COMPLEATE_e) { + mClothesChangeWaitTimer = 0; + + if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_METAMORPHOSE_ONLY) { + if (i_checkWolf()) { + changeLink(0); + } else { + changeWolf(); + } + } else { + changeLink(1); + } + + return 1; + } + mClothesChangeWaitTimer = 2; + } + } + } else { + return 1; + } + + return 0; +} + +/* 801401F8-80140274 13AB38 007C+00 2/2 0/0 0/0 .text setShieldModel__9daAlink_cFv */ +void daAlink_c::setShieldModel() { + JKRHeap* heap = mAnmHeap4.setAnimeHeap(); + mShieldModel = initModel((J3DModelData*)dComIfG_getObjectRes(mShieldArcName, 3), 0); + + mDoExt_setCurrentHeap(heap); +} + +/* 80140274-80140338 13ABB4 00C4+00 2/2 0/0 0/0 .text loadShieldModelDVD__9daAlink_cFv */ +int daAlink_c::loadShieldModelDVD() { + if (mShieldChangeWaitTimer != 0) { + mShieldChangeWaitTimer--; + + if (mShieldChangeWaitTimer == 2) { + mShieldModel = NULL; + dComIfG_resDelete(&mShieldPhaseReq, mShieldArcName); + cPhs_Reset(&mShieldPhaseReq); + field_0x0648->freeAll(); + setShieldArcName(); + } else if (mShieldChangeWaitTimer == 1) { + if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, field_0x0648) == cPhs_COMPLEATE_e) + { + mShieldChangeWaitTimer = 0; + setShieldModel(); + } else { + mShieldChangeWaitTimer = 2; + } + } + } else { + return 1; + } + + return 0; +} + +/* 80140338-80140550 13AC78 0218+00 3/3 0/0 0/0 .text changeModelDataDirect__9daAlink_cFi + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daAlink_c::changeModelDataDirect(int param_0) { + nofralloc +#include "asm/d/a/d_a_alink/changeModelDataDirect__9daAlink_cFi.s" +} +#pragma pop + +/* 80140550-801406A8 13AE90 0158+00 3/3 0/0 0/0 .text changeModelDataDirectWolf__9daAlink_cFi */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daAlink_c::changeModelDataDirectWolf(int param_0) { + nofralloc +#include "asm/d/a/d_a_alink/changeModelDataDirectWolf__9daAlink_cFi.s" +} +#pragma pop + /* 801406A8-80140888 13AFE8 01E0+00 0/0 1/1 0/0 .text initStatusWindow__9daAlink_cFv */ // regalloc #ifdef NONMATCHING diff --git a/src/d/a/d_a_alink_weakfn.inc b/src/d/a/d_a_alink_weakfn.inc new file mode 100644 index 0000000000..870952cab2 --- /dev/null +++ b/src/d/a/d_a_alink_weakfn.inc @@ -0,0 +1,1644 @@ +// TODO: This isn't a real file, this is a hack to build OK with -sym on +// To properly fix, these symbols need to be compiler generated + +/* 80140C80-80140CDC 13B5C0 005C+00 1/0 0/0 0/0 .text __dt__8dEyeHL_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dEyeHL_c::~dEyeHL_c() { +extern "C" asm void __dt__8dEyeHL_cFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__8dEyeHL_cFv.s" +} +#pragma pop + +/* 80140CDC-80140D24 13B61C 0048+00 0/0 1/0 0/0 .text __dt__18daPy_sightPacket_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm daPy_sightPacket_c::~daPy_sightPacket_c() { +extern "C" asm void __dt__18daPy_sightPacket_cFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__18daPy_sightPacket_cFv.s" +} +#pragma pop + +/* 80140D24-80140D80 13B664 005C+00 3/2 0/0 0/0 .text __dt__16daPy_frameCtrl_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm daPy_frameCtrl_c::~daPy_frameCtrl_c() { +extern "C" asm void __dt__16daPy_frameCtrl_cFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__16daPy_frameCtrl_cFv.s" +} +#pragma pop + +/* 80140D80-80140DCC 13B6C0 004C+00 1/1 0/0 0/0 .text __ct__16daPy_frameCtrl_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm daPy_frameCtrl_c::daPy_frameCtrl_c() { +extern "C" asm void __ct__16daPy_frameCtrl_cFv() { + nofralloc +#include "asm/d/a/d_a_alink/__ct__16daPy_frameCtrl_cFv.s" +} +#pragma pop + +/* 80140DCC-80140DF0 13B70C 0024+00 1/1 0/0 0/0 .text __defctor__14daPy_anmHeap_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daPy_anmHeap_c::__defctor() { + nofralloc +#include "asm/d/a/d_a_alink/__defctor__14daPy_anmHeap_cFv.s" +} +#pragma pop + +/* 80140DF0-80140E2C 13B730 003C+00 2/2 0/0 0/0 .text __dt__19mDoExt_AnmRatioPackFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm mDoExt_AnmRatioPack::~mDoExt_AnmRatioPack() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__19mDoExt_AnmRatioPackFv.s" +} +#pragma pop + +/* 80140E2C-80140E40 13B76C 0014+00 1/1 0/0 0/0 .text __ct__19mDoExt_AnmRatioPackFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm mDoExt_AnmRatioPack::mDoExt_AnmRatioPack() { + nofralloc +#include "asm/d/a/d_a_alink/__ct__19mDoExt_AnmRatioPackFv.s" +} +#pragma pop + +/* 80140E40-80140EB8 13B780 0078+00 4/3 0/0 0/0 .text __dt__16dBgS_LinkRoofChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dBgS_LinkRoofChk::~dBgS_LinkRoofChk() { +extern "C" asm void __dt__16dBgS_LinkRoofChkFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__16dBgS_LinkRoofChkFv.s" +} +#pragma pop + +/* 80140EB8-80140F30 13B7F8 0078+00 4/3 0/0 0/0 .text __dt__15dBgS_LinkGndChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dBgS_LinkGndChk::~dBgS_LinkGndChk() { +extern "C" asm void __dt__15dBgS_LinkGndChkFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__15dBgS_LinkGndChkFv.s" +} +#pragma pop + +/* 80140F30-80140FA0 13B870 0070+00 3/2 0/0 0/0 .text __dt__13dBgS_LinkAcchFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dBgS_LinkAcch::~dBgS_LinkAcch() { +extern "C" asm void __dt__13dBgS_LinkAcchFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__13dBgS_LinkAcchFv.s" +} +#pragma pop + +/* 80140FA0-80141020 13B8E0 0080+00 1/1 0/0 0/0 .text __ct__8dCcD_CpsFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dCcD_Cps::dCcD_Cps() { +extern "C" asm void __ct__8dCcD_CpsFv() { + nofralloc +#include "asm/d/a/d_a_alink/__ct__8dCcD_CpsFv.s" +} +#pragma pop + +/* 80141020-801410A4 13B960 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm dCcD_Cyl::dCcD_Cyl() { +extern "C" asm void __ct__8dCcD_CylFv() { + nofralloc +#include "asm/d/a/d_a_alink/__ct__8dCcD_CylFv.s" +} +#pragma pop + +/* 801410A4-801410EC 13B9E4 0048+00 0/0 1/0 0/0 .text __dt__9cCcD_SttsFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm cCcD_Stts::~cCcD_Stts() { +extern "C" asm void __dt__9cCcD_SttsFv() { + nofralloc +#include "asm/d/a/d_a_alink/__dt__9cCcD_SttsFv.s" +} +#pragma pop + +/* 801410EC-8014111C 13BA2C 0030+00 1/1 0/0 0/0 .text __ct__16daPy_actorKeep_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +extern "C" asm void __ct__16daPy_actorKeep_cFv() { + nofralloc +#include "asm/d/a/d_a_alink/__ct__16daPy_actorKeep_cFv.s" +} +#pragma pop + +/* 8014111C-8014112C 13BA5C 0010+00 1/1 0/0 0/0 .text + * onNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2 */ +void daPy_py_c::onNoResetFlg2(daPy_FLG2 pFlag) { + mNoResetFlg2 |= pFlag; +} + +/* 8014112C-8014113C 13BA6C 0010+00 1/1 0/0 0/0 .text + * offNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0 */ +// weird regalloc +#ifdef NONMATCHING +void daPy_py_c::offNoResetFlg0(daPy_FLG0 pFlag) { + mNoResetFlg0 &= ~pFlag; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daPy_py_c::offNoResetFlg0(daPy_py_c::daPy_FLG0 param_0) { + nofralloc +#include "asm/d/a/d_a_alink/offNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0.s" +} +#pragma pop +#endif + +/* 8014113C-80141190 13BA7C 0054+00 1/1 0/0 0/0 .text mDoAud_seStartLevel__FUlPC3VecUlSc + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void mDoAud_seStartLevel(u32 param_0, Vec const* param_1, u32 param_2, s8 param_3) { + nofralloc +#include "asm/d/a/d_a_alink/mDoAud_seStartLevel__FUlPC3VecUlSc.s" +} +#pragma pop + +/* 80141190-8014119C 13BAD0 000C+00 1/1 0/0 0/0 .text + * checkEndResetFlg2__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG2 */ +int daPy_py_c::checkEndResetFlg2(daPy_ERFLG2 pFlag) const { + return mEndResetFlg2 & pFlag; +} + +/* 8014119C-801411B0 13BADC 0014+00 1/1 0/0 0/0 .text dComIfGp_setBottleStatus__FUcUc */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void dComIfGp_setBottleStatus(u8 param_0, u8 param_1) { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGp_setBottleStatus__FUcUc.s" +} +#pragma pop + +/* 801411B0-801411D4 13BAF0 0024+00 1/1 0/0 0/0 .text getSumouMode__9daPy_py_cCFv */ +bool daPy_py_c::getSumouMode() const { + return getSumouCameraMode(); +} + +/* 801411D4-801411E0 13BB14 000C+00 1/1 0/0 0/0 .text + * checkNoResetFlg3__9daPy_py_cCFQ29daPy_py_c9daPy_FLG3 */ +int daPy_py_c::checkNoResetFlg3(daPy_FLG3 pFlag) const { + return mNoResetFlg3 & pFlag; +} + +/* 801411E0-801411F0 13BB20 0010+00 1/1 0/0 0/0 .text onCondition__11dEvt_info_cFUs */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void dEvt_info_c::onCondition(u16 param_0) { + nofralloc +#include "asm/d/a/d_a_alink/onCondition__11dEvt_info_cFUs.s" +} +#pragma pop + +/* 801411F0-80141200 13BB30 0010+00 1/1 4/4 0/0 .text __ct__8cM3dGPlaFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm cM3dGPla::cM3dGPla() { +extern "C" asm void __ct__8cM3dGPlaFv() { + nofralloc +#include "asm/d/a/d_a_alink/__ct__8cM3dGPlaFv.s" +} +#pragma pop + +/* 80141200-80141210 13BB40 0010+00 1/1 0/0 0/0 .text offCondition__11dEvt_info_cFUs */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void dEvt_info_c::offCondition(u16 param_0) { + nofralloc +#include "asm/d/a/d_a_alink/offCondition__11dEvt_info_cFUs.s" +} +#pragma pop + +/* 80141210-80141230 13BB50 0020+00 1/1 0/0 0/0 .text checkShieldGet__9daPy_py_cFv */ +BOOL daPy_py_c::checkShieldGet() { + return dComIfGs_getSelectEquipShield() != NO_ITEM; +} + +/* 80141230-80141264 13BB70 0034+00 1/1 0/0 0/0 .text fopAcM_onSwitch__FPC10fopAc_ac_ci + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void fopAcM_onSwitch(fopAc_ac_c const* param_0, int param_1) { + nofralloc +#include "asm/d/a/d_a_alink/fopAcM_onSwitch__FPC10fopAc_ac_ci.s" +} +#pragma pop + +/* 80141264-80141294 13BBA4 0030+00 1/1 0/0 0/0 .text dComIfGs_isItemFirstBit__FUc */ +int dComIfGs_isItemFirstBit(u8 i_no) { + return g_dComIfG_gameInfo.info.getPlayer().getGetItem().isFirstBit(i_no); +} + +/* 80141294-801412A0 13BBD4 000C+00 1/1 0/0 0/0 .text + * dStage_stagInfo_GetSaveTbl__FP21stage_stag_info_class */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { + nofralloc +#include "asm/d/a/d_a_alink/dStage_stagInfo_GetSaveTbl__FP21stage_stag_info_class.s" +} +#pragma pop + +/* 801412A0-801412B0 13BBE0 0010+00 1/1 0/0 0/0 .text dComIfGp_getStage__Fv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm dStage_stageDt_c* dComIfGp_getStage() { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGp_getStage__Fv.s" +} +#pragma pop + +/* 801412B0-801412BC 13BBF0 000C+00 1/1 0/0 0/0 .text checkEquipHeavyBoots__9daPy_py_cCFv + */ +u32 daPy_py_c::checkEquipHeavyBoots() const { + return i_checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); +} + +/* 801412BC-801412C4 13BBFC 0008+00 1/1 4/4 0/0 .text fopAcM_GetName__FPv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +// asm void fopAcM_GetName(void* param_0) { +extern "C" asm void fopAcM_GetName__FPv() { + nofralloc +#include "asm/d/a/d_a_alink/fopAcM_GetName__FPv.s" +} +#pragma pop + +/* 801412C4-801412D4 13BC04 0010+00 1/1 0/0 0/0 .text + * onNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0 */ +void daPy_py_c::onNoResetFlg0(daPy_FLG0 pFlag) { + mNoResetFlg0 |= pFlag; +} + +/* 801412D4-801412F8 13BC14 0024+00 1/1 0/0 0/0 .text isOrderOK__14dEvt_control_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm BOOL dEvt_control_c::isOrderOK() { + nofralloc +#include "asm/d/a/d_a_alink/isOrderOK__14dEvt_control_cFv.s" +} +#pragma pop + +/* 801412F8-80141308 13BC38 0010+00 1/1 0/0 0/0 .text dComIfGp_getEvent__Fv */ +static dEvt_control_c& dComIfGp_getEvent() { + return g_dComIfG_gameInfo.play.getEvent(); +} + +/* 80141308-80141324 13BC48 001C+00 1/1 0/0 0/0 .text dComIfGp_checkPlayerStatus0__FiUl + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm u32 dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGp_checkPlayerStatus0__FiUl.s" +} +#pragma pop + +/* 80141324-80141340 13BC64 001C+00 1/1 0/0 0/0 .text dComIfGp_checkPlayerStatus1__FiUl + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm u32 dComIfGp_checkPlayerStatus1(int param_0, u32 param_1) { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGp_checkPlayerStatus1__FiUl.s" +} +#pragma pop + +/* 80141340-8014134C 13BC80 000C+00 1/1 0/0 0/0 .text + * checkEndResetFlg1__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG1 */ +u32 daPy_py_c::checkEndResetFlg1(daPy_ERFLG1 pFlag) const { + return mEndResetFlg1 & pFlag; +} + +/* 8014134C-8014135C 13BC8C 0010+00 1/1 0/0 0/0 .text dComIfGp_getEventManager__Fv */ +static dEvent_manager_c& dComIfGp_getEventManager() { + return g_dComIfG_gameInfo.play.getEvtManager(); +} + +/* 8014135C-8014136C 13BC9C 0010+00 1/1 0/0 0/0 .text + * offNoResetFlg1__9daPy_py_cFQ29daPy_py_c9daPy_FLG1 */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daPy_py_c::offNoResetFlg1(daPy_py_c::daPy_FLG1 param_0) { + nofralloc +#include "asm/d/a/d_a_alink/offNoResetFlg1__9daPy_py_cFQ29daPy_py_c9daPy_FLG1.s" +} +#pragma pop + +/* 8014136C-8014137C 13BCAC 0010+00 1/1 0/0 0/0 .text + * offNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2 */ +// regalloc +#ifdef NONMATCHING +void daPy_py_c::offNoResetFlg2(daPy_py_c::daPy_FLG2 param_0) { + mNoResetFlg2 &= ~param_0; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daPy_py_c::offNoResetFlg2(daPy_py_c::daPy_FLG2 param_0) { + nofralloc +#include "asm/d/a/d_a_alink/offNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2.s" +} +#pragma pop +#endif + +/* 8014137C-80141388 13BCBC 000C+00 1/1 0/0 0/0 .text setSpecialDemoType__11daPy_demo_cFv + */ +void daPy_demo_c::setSpecialDemoType() { + setDemoType(5); +} + +/* 80141388-8014139C 13BCC8 0014+00 1/1 0/0 0/0 .text checkCommandCatch__11dEvt_info_cFv + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm bool dEvt_info_c::checkCommandCatch() { + nofralloc +#include "asm/d/a/d_a_alink/checkCommandCatch__11dEvt_info_cFv.s" +} +#pragma pop + +/* 8014139C-801413CC 13BCDC 0030+00 1/1 1/1 0/0 .text dComIfGs_isEventBit__FUs */ +BOOL dComIfGs_isEventBit(u16 id) { + return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); +} + +/* 801413CC-801413D8 13BD0C 000C+00 1/1 0/0 0/0 .text checkWolf__9daPy_py_cCFv */ +u32 daPy_py_c::checkWolf() const { + return i_checkNoResetFlg1(FLG1_IS_WOLF); +} + +/* 801413D8-801413F8 13BD18 0020+00 1/1 0/0 0/0 .text checkSwordGet__9daPy_py_cFv */ +BOOL daPy_py_c::checkSwordGet() { + return dComIfGs_getSelectEquipSword() != 0xFF; +} + +/* 801413F8-80141404 13BD38 000C+00 1/1 0/0 0/0 .text + * checkResetFlg0__9daPy_py_cCFQ29daPy_py_c10daPy_RFLG0 */ +u32 daPy_py_c::checkResetFlg0(daPy_RFLG0 pFlag) const { + return mResetFlg0 & pFlag; +} + +/* 80141404-80141410 13BD44 000C+00 1/1 0/0 0/0 .text ChkGroundHit__9dBgS_AcchCFv */ +bool dBgS_Acch::ChkGroundHit() const { + return m_flags & GROUND_HIT; +} + +/* 80141410-8014141C 13BD50 000C+00 1/1 0/0 0/0 .text + * checkNoResetFlg0__9daPy_py_cCFQ29daPy_py_c9daPy_FLG0 */ +u32 daPy_py_c::checkNoResetFlg0(daPy_FLG0 pFlag) const { + return mNoResetFlg0 & pFlag; +} + +/* 8014141C-80141438 13BD5C 001C+00 1/1 0/0 0/0 .text dComIfGp_getPlayerCameraID__Fi */ +#ifdef NONMATCHING +static s32 dComIfGp_getPlayerCameraID(int i) { + return g_dComIfG_gameInfo.play.getPlayerCameraID(i); +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm s8 dComIfGp_getPlayerCameraID(int param_0) { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGp_getPlayerCameraID__Fi.s" +} +#pragma pop +#endif + +/* 80141438-80141450 13BD78 0018+00 1/1 0/0 0/0 .text dComIfGp_event_chkEventFlag__FUs */ +static u16 dComIfGp_event_chkEventFlag(u16 flag) { + return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag); +} + +/* 80141450-80141464 13BD90 0014+00 1/1 0/0 0/0 .text checkCommandDoor__11dEvt_info_cFv + */ +BOOL dEvt_info_c::checkCommandDoor() { + return mCommand == 3; +} + +/* 80141464-801414A4 13BDA4 0040+00 1/1 0/0 0/0 .text + * dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci */ +static s32 dComIfGp_evmng_getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) { + return dComIfGp_getPEvtManager()->getMyStaffId(param_0, param_1, param_2); +} + +/* 801414A4-801414C0 13BDE4 001C+00 1/1 0/0 0/0 .text dComIfGp_event_runCheck__Fv */ +static BOOL dComIfGp_event_runCheck() { + return g_dComIfG_gameInfo.play.getEvent().runCheck(); +} + +/* 801414C0-801414CC 13BE00 000C+00 1/1 0/0 0/0 .text + * checkNoResetFlg2__9daPy_py_cCFQ29daPy_py_c9daPy_FLG2 */ +u32 daPy_py_c::checkNoResetFlg2(daPy_FLG2 pFlag) const { + return mNoResetFlg2 & pFlag; +} + +/* 801414CC-801414D8 13BE0C 000C+00 1/1 2/2 0/0 .text checkMagneBootsOn__9daPy_py_cCFv */ +u32 daPy_py_c::checkMagneBootsOn() const { + return i_checkNoResetFlg0(FLG0_MAGNE_BOOTS_ON); +} + +/* 801414D8-801414E8 13BE18 0010+00 1/1 2/2 0/0 .text dComIfGp_getHorseActor__Fv */ +daHorse_c* dComIfGp_getHorseActor() { + return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1); +} + +/* 801414E8-801414F4 13BE28 000C+00 1/1 0/0 0/0 .text checkBoarSingleBattle__9daPy_py_cCFv */ +u32 daPy_py_c::checkBoarSingleBattle() const { + return i_checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); +} + +/* 801414F4-80141500 13BE34 000C+00 1/1 0/0 0/0 .text + * checkEndResetFlg0__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG0 */ +u32 daPy_py_c::checkEndResetFlg0(daPy_ERFLG0 pFlag) const { + return mEndResetFlg0 & pFlag; +} + +/* 80141500-80141508 13BE40 0008+00 1/0 0/0 0/0 .text getMidnaAtnPos__9daPy_py_cCFv */ +extern "C" bool getMidnaAtnPos__9daPy_py_cCFv() { + // bool daPy_py_c::getMidnaAtnPos() const { + return false; +} + +/* 80141508-8014150C 13BE48 0004+00 1/0 0/0 0/0 .text setMidnaMsgNum__9daPy_py_cFP10fopAc_ac_cUs + */ +void daPy_py_c::setMidnaMsgNum(fopAc_ac_c* param_0, u16 param_1) { + /* empty function */ +} + +/* 8014150C-80141514 13BE4C 0008+00 1/0 0/0 0/0 .text getModelMtx__9daPy_py_cFv */ +MtxP daPy_py_c::getModelMtx() { + return mCullMtx; +} + +/* 80141514-8014151C 13BE54 0008+00 1/0 0/0 0/0 .text getInvMtx__9daPy_py_cFv */ +MtxP daPy_py_c::getInvMtx() { + return mCullMtx; +} + +/* 8014151C-80141524 13BE5C 0008+00 1/0 0/0 0/0 .text getShadowTalkAtnPos__9daPy_py_cFv + */ +cXyz* daPy_py_c::getShadowTalkAtnPos() { + return ¤t.pos; +} + +/* 80141524-8014152C 13BE64 0008+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daPy_py_cFv */ +MtxP daPy_py_c::getLeftItemMatrix() { + return mCullMtx; +} + +/* 8014152C-80141534 13BE6C 0008+00 1/0 0/0 0/0 .text getRightItemMatrix__9daPy_py_cFv */ +MtxP daPy_py_c::getRightItemMatrix() { + return mCullMtx; +} + +/* 80141534-8014153C 13BE74 0008+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daPy_py_cFv */ +MtxP daPy_py_c::getLeftHandMatrix() { + return mCullMtx; +} + +/* 8014153C-80141544 13BE7C 0008+00 1/0 0/0 0/0 .text getRightHandMatrix__9daPy_py_cFv */ +MtxP daPy_py_c::getRightHandMatrix() { + return mCullMtx; +} + +/* 80141544-8014154C 13BE84 0008+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daPy_py_cFv */ +MtxP daPy_py_c::getLinkBackBone1Matrix() { + return mCullMtx; +} + +/* 8014154C-80141554 13BE8C 0008+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daPy_py_cFv */ +MtxP daPy_py_c::getWolfMouthMatrix() { + return mCullMtx; +} + +/* 80141554-8014155C 13BE94 0008+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daPy_py_cFv */ +MtxP daPy_py_c::getWolfBackbone2Matrix() { + return mCullMtx; +} + +/* 8014155C-80141564 13BE9C 0008+00 1/0 0/0 0/0 .text getBottleMtx__9daPy_py_cFv */ +MtxP daPy_py_c::getBottleMtx() { + return NULL; +} + +/* 80141564-8014156C 13BEA4 0008+00 1/0 0/0 0/0 .text checkPlayerGuard__9daPy_py_cCFv */ +BOOL daPy_py_c::checkPlayerGuard() const { + return false; +} + +/* 8014156C-80141574 13BEAC 0008+00 1/0 0/0 0/0 .text checkAutoJump__9daPy_py_cCFv */ +BOOL daPy_py_c::checkAutoJump() const { + return false; +} + +/* 80141574-8014157C 13BEB4 0008+00 1/0 0/0 0/0 .text checkSideStep__9daPy_py_cCFv */ +bool daPy_py_c::checkSideStep() const { + return false; +} + +/* 8014157C-80141584 13BEBC 0008+00 1/0 0/0 0/0 .text checkWolfTriggerJump__9daPy_py_cCFv + */ +bool daPy_py_c::checkWolfTriggerJump() const { + return false; +} + +/* 80141584-8014158C 13BEC4 0008+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkGuardBreakMode() const { + return false; +} + +/* 8014158C-80141594 13BECC 0008+00 1/0 0/0 0/0 .text checkLv3Slide__9daPy_py_cCFv */ +bool daPy_py_c::checkLv3Slide() const { + return false; +} + +/* 80141594-8014159C 13BED4 0008+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daPy_py_cCFv */ +bool daPy_py_c::checkWolfHowlDemoMode() const { + return false; +} + +/* 8014159C-801415A4 13BEDC 0008+00 1/0 0/0 0/0 .text checkChainBlockPushPull__9daPy_py_cFv */ +bool daPy_py_c::checkChainBlockPushPull() { + return false; +} + +/* 801415A4-801415AC 13BEE4 0008+00 1/0 0/0 0/0 .text checkElecDamage__9daPy_py_cCFv */ +BOOL daPy_py_c::checkElecDamage() const { + return false; +} + +/* 801415AC-801415B4 13BEEC 0008+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daPy_py_cCFv */ +BOOL daPy_py_c::checkEmptyBottleSwing() const { + return false; +} + +/* 801415B4-801415BC 13BEF4 0008+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkBottleSwingMode() const { + return false; +} + +/* 801415BC-801415C4 13BEFC 0008+00 1/0 0/0 0/0 .text checkHawkWait__9daPy_py_cCFv */ +BOOL daPy_py_c::checkHawkWait() const { + return false; +} + +/* 801415C4-801415CC 13BF04 0008+00 1/0 0/0 0/0 .text checkGoatThrow__9daPy_py_cCFv */ +BOOL daPy_py_c::checkGoatThrow() const { + return false; +} + +/* 801415CC-801415D4 13BF0C 0008+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkGoatThrowAfter() const { + return false; +} + +/* 801415D4-801415DC 13BF14 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkWolfTagLockJump() const { + return false; +} + +/* 801415DC-801415E4 13BF1C 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfTagLockJumpLand() const { + return false; +} + +/* 801415E4-801415EC 13BF24 0008+00 1/0 0/0 0/0 .text checkWolfRope__9daPy_py_cFv */ +BOOL daPy_py_c::checkWolfRope() { + return false; +} + +/* 801415EC-801415F4 13BF2C 0008+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfRopeHang() const { + return false; +} + +/* 801415F4-801415FC 13BF34 0008+00 1/0 0/0 0/0 .text checkRollJump__9daPy_py_cCFv */ +BOOL daPy_py_c::checkRollJump() const { + return false; +} + +/* 801415FC-80141604 13BF3C 0008+00 1/0 0/0 0/0 .text checkGoronRideWait__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkGoronRideWait() const { + return false; +} + +/* 80141604-8014160C 13BF44 0008+00 1/0 0/0 0/0 .text checkWolfChain__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfChain() const { + return false; +} + +/* 8014160C-80141614 13BF4C 0008+00 1/0 0/0 0/0 .text checkWolfWait__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfWait() const { + return false; +} + +/* 80141614-8014161C 13BF54 0008+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkWolfJumpAttack() const { + return false; +} + +/* 8014161C-80141624 13BF5C 0008+00 1/0 0/0 0/0 .text checkWolfRSit__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfRSit() const { + return false; +} + +/* 80141624-8014162C 13BF64 0008+00 2/0 0/0 0/0 .text checkBubbleFly__9daPy_py_cCFv */ +bool daPy_py_c::checkBubbleFly() const { + return false; +} + +/* 8014162C-80141634 13BF6C 0008+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkBottleDrinkEnd() const { + return false; +} + +/* 80141634-8014163C 13BF74 0008+00 1/0 0/0 0/0 .text checkWolfDig__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfDig() const { + return false; +} + +/* 8014163C-80141644 13BF7C 0008+00 1/0 0/0 0/0 .text checkCutCharge__9daPy_py_cCFv */ +BOOL daPy_py_c::checkCutCharge() const { + return false; +} + +/* 80141644-8014164C 13BF84 0008+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daPy_py_cCFv + */ +BOOL daPy_py_c::checkCutTurnCharge() const { + return false; +} + +/* 8014164C-80141654 13BF8C 0008+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daPy_py_cCFv */ +BOOL daPy_py_c::checkCutLargeJumpCharge() const { + return false; +} + +/* 80141654-8014165C 13BF94 0008+00 2/0 0/0 0/0 .text getBokoFlamePos__9daPy_py_cFP4cXyz + */ +bool daPy_py_c::getBokoFlamePos(cXyz* param_0) { + return false; +} + +/* 8014165C-80141664 13BF9C 0008+00 1/0 0/0 0/0 .text checkComboCutTurn__9daPy_py_cCFv */ +BOOL daPy_py_c::checkComboCutTurn() const { + return false; +} + +/* 80141664-8014166C 13BFA4 0008+00 1/0 0/0 0/0 .text checkClimbMove__9daPy_py_cCFv */ +BOOL daPy_py_c::checkClimbMove() const { + return false; +} + +/* 8014166C-80141674 13BFAC 0008+00 1/0 0/0 0/0 .text checkGrassWhistle__9daPy_py_cCFv */ +BOOL daPy_py_c::checkGrassWhistle() const { + return false; +} + +/* 80141674-8014167C 13BFB4 0008+00 1/0 0/0 0/0 .text checkBoarRun__9daPy_py_cCFv */ +BOOL daPy_py_c::checkBoarRun() const { + return false; +} + +/* 8014167C-80141684 13BFBC 0008+00 2/0 0/0 0/0 .text checkFmChainPut__9daPy_py_cCFv */ +bool daPy_py_c::checkFmChainPut() const { + return false; +} + +/* 80141684-8014168C 13BFC4 0008+00 2/0 0/0 0/0 .text checkHorseElecDamage__9daPy_py_cCFv + */ +bool daPy_py_c::checkHorseElecDamage() const { + return false; +} + +/* 8014168C-80141694 13BFCC 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrameRate__9daPy_py_cCFv */ +float daPy_py_c::getBaseAnimeFrameRate() const { + return lit_6040; +} + +/* 80141694-8014169C 13BFD4 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrame__9daPy_py_cCFv */ +f32 daPy_py_c::getBaseAnimeFrame() const { + return FLOAT_LABEL(lit_6108); +} + +/* 8014169C-801416A0 13BFDC 0004+00 1/0 0/0 0/0 .text setAnimeFrame__9daPy_py_cFf */ +void daPy_py_c::setAnimeFrame(f32 param_0) { + /* empty function */ +} + +/* 801416A0-801416A8 13BFE0 0008+00 1/0 0/0 0/0 .text checkWolfLock__9daPy_py_cCFP10fopAc_ac_c */ +bool daPy_py_c::checkWolfLock(fopAc_ac_c* param_0) const { + return false; +} + +/* 801416A8-801416B0 13BFE8 0008+00 1/0 0/0 0/0 .text cancelWolfLock__9daPy_py_cFP10fopAc_ac_c */ +bool daPy_py_c::cancelWolfLock(fopAc_ac_c* param_0) { + return false; +} + +/* 801416B0-801416B8 13BFF0 0008+00 1/0 0/0 0/0 .text getItemID__9daPy_py_cCFv */ +s32 daPy_py_c::getItemID() const { + return -1; +} + +/* 801416B8-801416C0 13BFF8 0008+00 1/0 0/0 0/0 .text exchangeGrabActor__9daPy_py_cFP10fopAc_ac_c + */ +bool daPy_py_c::exchangeGrabActor(fopAc_ac_c* param_0) { + return false; +} + +/* 801416C0-801416C8 13C000 0008+00 1/0 0/0 0/0 .text setForceGrab__9daPy_py_cFP10fopAc_ac_cii */ +bool daPy_py_c::setForceGrab(fopAc_ac_c* param_0, int param_1, int param_2) { + return false; +} + +/* 801416C8-801416CC 13C008 0004+00 1/0 0/0 0/0 .text setForcePutPos__9daPy_py_cFRC4cXyz + */ +void daPy_py_c::setForcePutPos(cXyz const& param_0) { + /* empty function */ +} + +/* 801416CC-801416D4 13C00C 0008+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daPy_py_cFv */ +u32 daPy_py_c::checkPlayerNoDraw() { + return false; +} + +/* 801416D4-801416DC 13C014 0008+00 2/0 0/0 0/0 .text checkRopeTag__9daPy_py_cFv */ +bool daPy_py_c::checkRopeTag() { + return false; +} + +/* 801416DC-801416E0 13C01C 0004+00 1/0 0/0 0/0 .text voiceStart__9daPy_py_cFUl */ +void daPy_py_c::voiceStart(u32 param_0) { + /* empty function */ +} + +/* 801416E0-801416E4 13C020 0004+00 1/0 0/0 0/0 .text seStartOnlyReverb__9daPy_py_cFUl */ +void daPy_py_c::seStartOnlyReverb(u32 param_0) { + /* empty function */ +} + +/* 801416E4-801416E8 13C024 0004+00 1/0 0/0 0/0 .text seStartOnlyReverbLevel__9daPy_py_cFUl */ +void daPy_py_c::seStartOnlyReverbLevel(u32 param_0) { + /* empty function */ +} + +/* 801416E8-801416EC 13C028 0004+00 1/0 0/0 0/0 .text setOutPower__9daPy_py_cFfsi */ +void daPy_py_c::setOutPower(f32 param_0, s16 param_1, int param_2) { + /* empty function */ +} + +/* 801416EC-801416F0 13C02C 0004+00 1/0 0/0 0/0 .text + * setGrabCollisionOffset__9daPy_py_cFffP13cBgS_PolyInfo */ +void daPy_py_c::setGrabCollisionOffset(f32 param_0, f32 param_1, cBgS_PolyInfo* param_2) { + /* empty function */ +} + +/* 801416F0-801416F4 13C030 0004+00 2/0 0/0 0/0 .text onMagneGrab__9daPy_py_cFff */ +void daPy_py_c::onMagneGrab(f32 param_0, f32 param_1) { + /* empty function */ +} + +/* 801416F4-801416FC 13C034 0008+00 1/0 0/0 0/0 .text getModelJointMtx__9daPy_py_cFUs */ +MtxP daPy_py_c::getModelJointMtx(u16 param_0) { + return NULL; +} + +/* 801416FC-80141704 13C03C 0008+00 1/0 0/0 0/0 .text getHeadMtx__9daPy_py_cFv */ +MtxP daPy_py_c::getHeadMtx() { + return NULL; +} + +/* 80141704-8014170C 13C044 0008+00 1/0 0/0 0/0 .text setHookshotCarryOffset__9daPy_py_cFUiPC4cXyz + */ +bool daPy_py_c::setHookshotCarryOffset(unsigned int param_0, cXyz const* param_1) { + return false; +} + +/* 8014170C-80141714 13C04C 0008+00 1/0 0/0 0/0 .text checkIronBallReturn__9daPy_py_cCFv + */ +bool daPy_py_c::checkIronBallReturn() const { + return false; +} + +/* 80141714-8014171C 13C054 0008+00 1/0 0/0 0/0 .text checkIronBallGroundStop__9daPy_py_cCFv */ +bool daPy_py_c::checkIronBallGroundStop() const { + return false; +} + +/* 8014171C-80141724 13C05C 0008+00 1/0 0/0 0/0 .text + * checkSingleBoarBattleSecondBowReady__9daPy_py_cCFv */ +BOOL daPy_py_c::checkSingleBoarBattleSecondBowReady() const { + return false; +} + +/* 80141724-8014172C 13C064 0008+00 2/0 0/0 0/0 .text checkPointSubWindowMode__9daPy_py_cCFv */ +bool daPy_py_c::checkPointSubWindowMode() const { + return false; +} + +/* 8014172C-80141730 13C06C 0004+00 1/0 0/0 0/0 .text setClothesChange__9daPy_py_cFi */ +void daPy_py_c::setClothesChange(int param_0) { + /* empty function */ +} + +/* 80141730-80141734 13C070 0004+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daPy_py_cFPA4_f */ +void daPy_py_c::setPlayerPosAndAngle(f32 (*param_0)[4]) { + /* empty function */ +} + +/* 80141734-80141738 13C074 0004+00 1/0 0/0 0/0 .text + * setPlayerPosAndAngle__9daPy_py_cFPC4cXyzPC5csXyz */ +void daPy_py_c::setPlayerPosAndAngle(cXyz const* param_0, csXyz const* param_1) { + /* empty function */ +} + +/* 80141738-8014173C 13C078 0004+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daPy_py_cFPC4cXyzsi + */ +void daPy_py_c::setPlayerPosAndAngle(cXyz const* param_0, s16 param_1, int param_2) { + /* empty function */ +} + +/* 8014173C-80141744 13C07C 0008+00 1/0 0/0 0/0 .text setThrowDamage__9daPy_py_cFsffiii + */ +bool daPy_py_c::setThrowDamage(s16 param_0, f32 param_1, f32 param_2, int param_3, int param_4, + int param_5) { + return false; +} + +/* 80141744-8014174C 13C084 0008+00 1/0 0/0 0/0 .text checkSetNpcTks__9daPy_py_cFP4cXyzii + */ +bool daPy_py_c::checkSetNpcTks(cXyz* param_0, int param_1, int param_2) { + return false; +} + +/* 8014174C-80141754 13C08C 0008+00 1/0 0/0 0/0 .text setRollJump__9daPy_py_cFffs */ +int daPy_py_c::setRollJump(f32 param_0, f32 param_1, s16 param_2) { + return 0; +} + +/* 80141754-80141758 13C094 0004+00 1/0 0/0 0/0 .text playerStartCollisionSE__9daPy_py_cFUlUl */ +void daPy_py_c::playerStartCollisionSE(u32 param_0, u32 param_1) { + /* empty function */ +} + +/* 80141758-8014175C 13C098 0004+00 2/0 0/0 0/0 .text changeTextureAnime__9daPy_py_cFUsUsi */ +void daPy_py_c::changeTextureAnime(u16 param_0, u16 param_1, int param_2) { + /* empty function */ +} + +/* 8014175C-80141760 13C09C 0004+00 2/0 0/0 0/0 .text cancelChangeTextureAnime__9daPy_py_cFv */ +void daPy_py_c::cancelChangeTextureAnime() { + /* empty function */ +} + +/* 80141760-80141764 13C0A0 0004+00 1/0 0/0 0/0 .text cancelDungeonWarpReadyNeck__9daPy_py_cFv */ +void daPy_py_c::cancelDungeonWarpReadyNeck() { + /* empty function */ +} + +/* 80141764-80141768 13C0A4 0004+00 1/0 0/0 0/0 .text + * onSceneChangeArea__9daPy_py_cFUcUcP10fopAc_ac_c */ +void daPy_py_c::onSceneChangeArea(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { + /* empty function */ +} + +/* 80141768-8014176C 13C0A8 0004+00 1/0 0/0 0/0 .text + * onSceneChangeAreaJump__9daPy_py_cFUcUcP10fopAc_ac_c */ +void daPy_py_c::onSceneChangeAreaJump(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { + /* empty function */ +} + +/* 8014176C-80141770 13C0AC 0004+00 1/0 0/0 0/0 .text onSceneChangeDead__9daPy_py_cFUci + */ +void daPy_py_c::onSceneChangeDead(u8 param_0, int param_1) { + /* empty function */ +} + +/* 80141770-80141778 13C0B0 0008+00 1/0 0/0 0/0 .text getSpinnerActor__9daPy_py_cFv */ +fopAc_ac_c* daPy_py_c::getSpinnerActor() { + return NULL; +} + +/* 80141778-80141780 13C0B8 0008+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daPy_py_cCFv */ +BOOL daPy_py_c::checkHorseRideNotReady() const { + return false; +} + +/* 80141780-80141788 13C0C0 0008+00 1/0 0/0 0/0 .text checkArrowChargeEnd__9daPy_py_cCFv + */ +bool daPy_py_c::checkArrowChargeEnd() const { + return false; +} + +/* 80141788-80141790 13C0C8 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daPy_py_cCFv + */ +f32 daPy_py_c::getSearchBallScale() const { + return FLOAT_LABEL(lit_6108); +} + +/* 80141790-80141798 13C0D0 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daPy_py_cFv */ +s16 daPy_py_c::checkFastShotTime() { + return 0; +} + +/* 80141798-801417A0 13C0D8 0008+00 1/0 0/0 0/0 .text checkNoEquipItem__9daPy_py_cCFv */ +bool daPy_py_c::checkNoEquipItem() const { + return true; +} + +/* 801417A0-801417A8 13C0E0 0008+00 2/0 0/0 0/0 .text checkFireMaterial__9daPy_py_cCFv */ +bool daPy_py_c::checkFireMaterial() const { + return false; +} + +/* 801417A8-801417B0 13C0E8 0008+00 1/0 0/0 0/0 .text checkKandelaarSwing__9daPy_py_cCFi + */ +bool daPy_py_c::checkKandelaarSwing(int param_0) const { + return false; +} + +/* 801417B0-801417B8 13C0F0 0008+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daPy_py_cCFv + */ +s16 daPy_py_c::getBoardCutTurnOffsetAngleY() const { + return 0; +} + +/* 801417B8-801417C0 13C0F8 0008+00 2/0 0/0 0/0 .text getMagneHitPos__9daPy_py_cFv */ +cXyz* daPy_py_c::getMagneHitPos() { + return &mSwordTopPos; +} + +/* 801417C0-801417C8 13C100 0008+00 1/0 0/0 0/0 .text getMagneBootsTopVec__9daPy_py_cFv + */ +cXyz* daPy_py_c::getMagneBootsTopVec() { + return ¤t.pos; +} + +/* 801417C8-801417D0 13C108 0008+00 1/0 0/0 0/0 .text checkUseKandelaar__9daPy_py_cFi */ +bool daPy_py_c::checkUseKandelaar(int param_0) { + return false; +} + +/* 801417D0-801417D4 13C110 0004+00 1/0 0/0 0/0 .text setDkCaught__9daPy_py_cFP10fopAc_ac_c */ +void daPy_py_c::setDkCaught(fopAc_ac_c* param_0) { + /* empty function */ +} + +/* 801417D4-801417D8 13C114 0004+00 1/0 0/0 0/0 .text onPressedDamage__9daPy_py_cFRC4cXyzs */ +void daPy_py_c::onPressedDamage(cXyz const& param_0, s16 param_1) { + /* empty function */ +} + +/* 801417D8-801417E0 13C118 0008+00 1/0 0/0 0/0 .text checkPriActorOwn__9daPy_py_cCFPC10fopAc_ac_c + */ +bool daPy_py_c::checkPriActorOwn(fopAc_ac_c const* param_0) const { + return false; +} + +/* 801417E0-801417E8 13C120 0008+00 1/0 0/0 0/0 .text + * onWolfEnemyBiteAll__9daPy_py_cFP10fopAc_ac_cQ29daPy_py_c9daPy_FLG2 */ +bool daPy_py_c::onWolfEnemyBiteAll(fopAc_ac_c* param_0, daPy_py_c::daPy_FLG2 param_1) { + return false; +} + +/* 801417E8-801417F0 13C128 0008+00 1/0 0/0 0/0 .text + * checkWolfEnemyBiteAllOwn__9daPy_py_cCFPC10fopAc_ac_c */ +bool daPy_py_c::checkWolfEnemyBiteAllOwn(fopAc_ac_c const* param_0) const { + return false; +} + +/* 801417F0-801417F4 13C130 0004+00 1/0 0/0 0/0 .text setWolfEnemyHangBiteAngle__9daPy_py_cFs */ +void daPy_py_c::setWolfEnemyHangBiteAngle(s16 param_0) { + /* empty function */ +} + +/* 801417F4-801417F8 13C134 0004+00 1/0 0/0 0/0 .text setKandelaarMtx__9daPy_py_cFPA4_fii + */ +void daPy_py_c::setKandelaarMtx(f32 (*param_0)[4], int param_1, int param_2) { + /* empty function */ +} + +/* 801417F8-80141800 13C138 0008+00 1/0 0/0 0/0 .text getStickAngleFromPlayerShape__9daPy_py_cCFPs + */ +bool daPy_py_c::getStickAngleFromPlayerShape(s16* param_0) const { + return false; +} + +/* 80141800-80141808 13C140 0008+00 1/0 0/0 0/0 .text checkSpinnerPathMove__9daPy_py_cFv + */ +bool daPy_py_c::checkSpinnerPathMove() { + return false; +} + +/* 80141808-80141810 13C148 0008+00 1/0 0/0 0/0 .text checkSpinnerTriggerAttack__9daPy_py_cFv */ +bool daPy_py_c::checkSpinnerTriggerAttack() { + return false; +} + +/* 80141810-80141814 13C150 0004+00 1/0 0/0 0/0 .text onSpinnerPathForceRemove__9daPy_py_cFv */ +void daPy_py_c::onSpinnerPathForceRemove() { + /* empty function */ +} + +/* 80141814-8014181C 13C154 0008+00 1/0 0/0 0/0 .text getIronBallBgHit__9daPy_py_cCFv */ +s16 daPy_py_c::getIronBallBgHit() const { + return 0; +} + +/* 8014181C-80141824 13C15C 0008+00 1/0 0/0 0/0 .text getIronBallCenterPos__9daPy_py_cFv + */ +cXyz* daPy_py_c::getIronBallCenterPos() { + return NULL; +} + +/* 80141824-8014182C 13C164 0008+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daPy_py_cCFv */ +bool daPy_py_c::checkCanoeFishingGetLeft() const { + return false; +} + +/* 8014182C-80141834 13C16C 0008+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daPy_py_cCFv */ +bool daPy_py_c::checkCanoeFishingGetRight() const { + return false; +} + +/* 80141834-8014183C 13C174 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daPy_py_cCFv + */ +u8 daPy_py_c::checkBeeChildDrink() const { + return false; +} + +/* 8014183C-80141840 13C17C 0004+00 1/0 0/0 0/0 .text skipPortalObjWarp__9daPy_py_cFv */ +void daPy_py_c::skipPortalObjWarp() { + /* empty function */ +} + +/* 80141840-80141848 13C180 0008+00 1/0 0/0 0/0 .text checkTreasureRupeeReturn__9daPy_py_cCFi */ +bool daPy_py_c::checkTreasureRupeeReturn(int param_0) const { + return false; +} + +/* 80141848-8014184C 13C188 0004+00 1/0 0/0 0/0 .text setSumouReady__9daPy_py_cFP10fopAc_ac_c */ +void daPy_py_c::setSumouReady(fopAc_ac_c* param_0) { + /* empty function */ +} + +/* 8014184C-80141854 13C18C 0008+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daPy_py_cFi */ +bool daPy_py_c::checkAcceptDungeonWarpAlink(int param_0) { + return false; +} + +/* 80141854-8014185C 13C194 0008+00 1/0 0/0 0/0 .text getSumouCounter__9daPy_py_cCFv */ +s16 daPy_py_c::getSumouCounter() const { + return 0; +} + +/* 8014185C-80141864 13C19C 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daPy_py_cCFv + */ +s16 daPy_py_c::checkSumouWithstand() const { + return 0; +} + +/* 80141864-80141868 13C1A4 0004+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daPy_py_cFv + */ +void daPy_py_c::cancelGoronThrowEvent() { + /* empty function */ +} + +/* 80141868-8014186C 13C1A8 0004+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daPy_py_cFi */ +void daPy_py_c::setSumouGraspCancelCount(int param_0) { + /* empty function */ +} + +/* 8014186C-80141870 13C1AC 0004+00 1/0 0/0 0/0 .text setSumouPushBackDirection__9daPy_py_cFs */ +void daPy_py_c::setSumouPushBackDirection(s16 param_0) { + /* empty function */ +} + +/* 80141870-80141874 13C1B0 0004+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daPy_py_cFv */ +void daPy_py_c::setSumouLoseHeadUp() { + /* empty function */ +} + +/* 80141874-8014187C 13C1B4 0008+00 1/0 0/0 0/0 .text getGiantPuzzleAimAngle__9daPy_py_cCFv */ +s16 daPy_py_c::getGiantPuzzleAimAngle() const { + return shape_angle.y; +} + +/* 8014187C-80141880 13C1BC 0004+00 1/0 0/0 0/0 .text setGoronSideMove__9daPy_py_cFP10fopAc_ac_c + */ +void daPy_py_c::setGoronSideMove(fopAc_ac_c* param_0) { + /* empty function */ +} + +/* 80141880-80141884 13C1C0 0004+00 1/0 0/0 0/0 .text setCargoCarry__9daPy_py_cFP10fopAc_ac_c */ +void daPy_py_c::setCargoCarry(fopAc_ac_c* param_0) { + /* empty function */ +} + +/* 80141884-8014188C 13C1C4 0008+00 2/0 0/0 0/0 .text getDpdFarFlg__9daPy_py_cCFv */ +bool daPy_py_c::getDpdFarFlg() const { + return false; +} + +/* 8014188C-80141894 13C1CC 0008+00 1/0 0/0 0/0 .text getHookshotTopPos__9daPy_py_cFv */ +cXyz* daPy_py_c::getHookshotTopPos() { + return NULL; +} + +/* 80141894-8014189C 13C1D4 0008+00 1/0 0/0 0/0 .text checkHookshotReturnMode__9daPy_py_cCFv */ +bool daPy_py_c::checkHookshotReturnMode() const { + return false; +} + +/* 8014189C-801418A4 13C1DC 0008+00 1/0 0/0 0/0 .text checkHookshotShootReturnMode__9daPy_py_cCFv + */ +bool daPy_py_c::checkHookshotShootReturnMode() const { + return false; +} + +/* 801418A4-801418AC 13C1E4 0008+00 1/0 0/0 0/0 .text checkOctaIealHang__9daPy_py_cCFv */ +bool daPy_py_c::checkOctaIealHang() const { + return false; +} + +/* 801418AC-801418B0 13C1EC 0004+00 1/0 0/0 0/0 .text cancelOctaIealHang__9daPy_py_cFv */ +void daPy_py_c::cancelOctaIealHang() { + /* empty function */ +} + +/* 801418B0-801418B4 13C1F0 0004+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daPy_py_cFv */ +void daPy_py_c::cancelDragonHangBackJump() { + /* empty function */ +} + +/* 801418B4-801418B8 13C1F4 0004+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daPy_py_cFv + */ +void daPy_py_c::setOctaIealWildHang() { + /* empty function */ +} + +/* 801418B8-801418C0 13C1F8 0008+00 1/0 0/0 0/0 .text checkDragonHangRide__9daPy_py_cCFv + */ +bool daPy_py_c::checkDragonHangRide() const { + return false; +} + +/* 801418C0-801418C4 13C200 0004+00 1/0 0/0 0/0 .text changeDragonActor__9daPy_py_cFP10fopAc_ac_c + */ +void daPy_py_c::changeDragonActor(fopAc_ac_c* param_0) { + /* empty function */ +} + +/* 801418C4-801418CC 13C204 0008+00 1/0 0/0 0/0 .text getClothesChangeWaitTimer__9daPy_py_cCFv */ +u8 daPy_py_c::getClothesChangeWaitTimer() const { + return 0; +} + +/* 801418CC-801418D4 13C20C 0008+00 1/0 0/0 0/0 .text getShieldChangeWaitTimer__9daPy_py_cCFv */ +u8 daPy_py_c::getShieldChangeWaitTimer() const { + return 0; +} + +/* 801418D4-801418DC 13C214 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daPy_py_cCFv */ +u8 daPy_py_c::getSwordChangeWaitTimer() const { + return 0; +} + +/* 801418DC-801418E4 13C21C 0008+00 1/0 0/0 0/0 .text checkMetamorphose__9daPy_py_cCFv */ +BOOL daPy_py_c::checkMetamorphose() const { + return false; +} + +/* 801418E4-801418EC 13C224 0008+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfDownAttackPullOut() const { + return false; +} + +/* 801418EC-801418F4 13C22C 0008+00 1/0 0/0 0/0 .text checkBootsOrArmorHeavy__9daPy_py_cCFv */ +BOOL daPy_py_c::checkBootsOrArmorHeavy() const { + return false; +} + +/* 801418F4-801418FC 13C234 0008+00 1/0 0/0 0/0 .text getBottleOpenAppearItem__9daPy_py_cCFv */ +s32 daPy_py_c::getBottleOpenAppearItem() const { + return -1; +} + +/* 801418FC-80141904 13C23C 0008+00 1/0 0/0 0/0 .text checkItemSwordEquip__9daPy_py_cCFv + */ +bool daPy_py_c::checkItemSwordEquip() const { + return false; +} + +/* 80141904-8014190C 13C244 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daPy_py_cCFv + */ +f32 daPy_py_c::getSinkShapeOffset() const { + return FLOAT_LABEL(lit_6108); +} + +/* 8014190C-80141914 13C24C 0008+00 1/0 0/0 0/0 .text checkSinkDead__9daPy_py_cCFv */ +BOOL daPy_py_c::checkSinkDead() const { + return false; +} + +/* 80141914-8014191C 13C254 0008+00 1/0 0/0 0/0 .text checkHorseStart__9daPy_py_cFv */ +BOOL daPy_py_c::checkHorseStart() { + return false; +} + +/* 8014191C-80141924 13C25C 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daPy_py_cFv */ +Z2WolfHowlMgr* daPy_py_c::getWolfHowlMgrP() { + return NULL; +} + +/* 80141924-8014192C 13C264 0008+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daPy_py_cCFv */ +BOOL daPy_py_c::checkWolfHowlSuccessAnime() const { + return false; +} + +/* 8014192C-80141934 13C26C 0008+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daPy_py_cFv */ +BOOL daPy_py_c::checkCopyRodTopUse() { + return false; +} + +/* 80141934-8014193C 13C274 0008+00 1/0 0/0 0/0 .text checkCopyRodEquip__9daPy_py_cCFv */ +bool daPy_py_c::checkCopyRodEquip() const { + return false; +} + +/* 8014193C-80141944 13C27C 0008+00 1/0 0/0 0/0 .text checkCutJumpMode__9daPy_py_cCFv */ +BOOL daPy_py_c::checkCutJumpMode() const { + return false; +} + +/* 80141944-8014194C 13C284 0008+00 1/1 0/0 0/0 .text getZeldaActor__9daHorse_cFv */ +fopAc_ac_c* daHorse_c::getZeldaActor() { + return mZeldaActorKeep.getActor(); +} + +/* 8014194C-8014195C 13C28C 0010+00 1/1 0/0 0/0 .text dComIfGp_getDoStatus__Fv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm u8 dComIfGp_getDoStatus() { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGp_getDoStatus__Fv.s" +} +#pragma pop + +/* 8014195C-8014196C 13C29C 0010+00 1/1 5/5 0/0 .text __ct__4cXyzFfff */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +extern "C" asm void __ct__4cXyzFfff(f32 param_0, f32 param_1, f32 param_2) { + nofralloc +#include "asm/d/a/d_a_alink/__ct__4cXyzFfff.s" +} +#pragma pop + +/* 8014196C-80141988 13C2AC 001C+00 1/1 0/0 0/0 .text dMeter2Info_offUseButton__Fi */ +static void dMeter2Info_offUseButton(int pButton) { + g_meter2_info.offUseButton(pButton); +} + +/* 80141988-80141990 -00001 0008+00 0/0 0/0 0/0 .text setLinkState__14Z2CreatureLinkFUc + */ +void Z2CreatureLink::setLinkState(u8 pState) { + mLinkState = pState; +} + +/* 80141990-801419A0 13C2D0 0010+00 1/1 0/0 0/0 .text dComIfGs_getRupee__Fv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm u16 dComIfGs_getRupee() { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGs_getRupee__Fv.s" +} +#pragma pop + +/* 801419A0-801419B8 13C2E0 0018+00 1/1 0/0 0/0 .text dComIfGp_setItemRupeeCount__Fl */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void dComIfGp_setItemRupeeCount(s32 param_0) { + nofralloc +#include "asm/d/a/d_a_alink/dComIfGp_setItemRupeeCount__Fl.s" +} +#pragma pop + +/* 801419B8-801419F4 13C2F8 003C+00 1/1 0/0 0/0 .text dMeter2Info_setFloatingMessage__FUssb */ +static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bool pWakuVisible) { + g_meter2_info.setFloatingMessage(pMessageID, pMessageTimer, pWakuVisible); +} + +/* 801419F4-80141A04 13C334 0010+00 1/1 0/0 0/0 .text onForcePanic__9daMidna_cFv */ +void daMidna_c::onForcePanic() { + onEndResetStateFlg0(ERFLG0_FORCE_PANIC); +} + +/* 80141A04-80141A10 13C344 000C+00 1/1 0/0 0/0 .text checkForceNormalColor__9daMidna_cCFv */ +u32 daMidna_c::checkForceNormalColor() const { + return checkStateFlg1(FLG1_FORCE_NORMAL_COL); +} + +/* 80141A10-80141A1C 13C350 000C+00 1/1 0/0 0/0 .text checkForceTiredColor__9daMidna_cCFv + */ +u32 daMidna_c::checkForceTiredColor() const { + return checkStateFlg1(FLG1_FORCE_TIRED_COL); +} + +/* 80141A1C-80141A84 13C35C 0068+00 1/1 0/0 0/0 .text checkMidnaTired__9daMidna_cFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm bool daMidna_c::checkMidnaTired() { + nofralloc +#include "asm/d/a/d_a_alink/checkMidnaTired__9daMidna_cFv.s" +} +#pragma pop + +/* 80141A84-80141A94 13C3C4 0010+00 1/1 0/0 0/0 .text onNoServiceWait__9daMidna_cFv */ +void daMidna_c::onNoServiceWait() { + onEndResetStateFlg0(ERFLG0_NO_SERVICE_WAIT); +} + +/* 80141A94-80141ACC 13C3D4 0038+00 1/1 0/0 0/0 .text setControllActorData__8daCrod_cFv + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void daCrod_c::setControllActorData() { + nofralloc +#include "asm/d/a/d_a_alink/setControllActorData__8daCrod_cFv.s" +} +#pragma pop + +/* 80141ACC-80141AE8 13C40C 001C+00 1/1 0/0 0/0 .text + * PrmAbstract__5daObjFPC10fopAc_ac_cQ312daObjMovebox5Act_c5Prm_eQ312daObjMovebox5Act_c5Prm_e + */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +extern "C" asm void func_80141ACC(void* _this, fopAc_ac_c const* param_0, + daObjMovebox::Act_c::Prm_e param_1, + daObjMovebox::Act_c::Prm_e param_2) { + nofralloc +#include "asm/d/a/d_a_alink/func_80141ACC.s" +} +#pragma pop + +/* 80141AE8-80141B04 13C428 001C+00 1/1 4/4 0/0 .text cLib_calcTimer__FPUc */ +extern "C" int func_80141AE8(u8* pTimer) { + if (*pTimer != 0) { + *pTimer -= 1; + } + return *pTimer; +} + +/* ############################################################################################## */ +/* 80453344-80453348 001944 0004+00 1/1 0/0 0/0 .sdata2 @77808 */ +SECTION_SDATA2 static f32 lit_77808 = 1.2427899837493896f; + +/* 80453348-8045334C 001948 0004+00 1/1 0/0 0/0 .sdata2 @77809 */ +SECTION_SDATA2 static f32 lit_77809 = 102.00054168701172f; + +/* 8045334C-80453350 00194C 0004+00 1/1 0/0 0/0 .sdata2 @77810 */ +SECTION_SDATA2 static f32 lit_77810 = -4.248938083648682f; + +/* 80453350-80453354 001950 0004+00 1/1 0/0 0/0 .sdata2 @77811 */ +SECTION_SDATA2 static f32 lit_77811 = 89.0f; + +/* 80453354-80453358 001954 0004+00 1/1 0/0 0/0 .sdata2 @77812 */ +SECTION_SDATA2 static f32 lit_77812 = -5.267045021057129f; + +/* 80453358-8045335C 001958 0004+00 1/1 0/0 0/0 .sdata2 @77813 */ +SECTION_SDATA2 static f32 lit_77813 = 4.313951015472412f; + +/* 8045335C-80453360 00195C 0004+00 1/1 0/0 0/0 .sdata2 @77814 */ +SECTION_SDATA2 static f32 lit_77814 = 93.9443588256836f; + +/* 80453360-80453364 001960 0004+00 1/1 0/0 0/0 .sdata2 @77815 */ +SECTION_SDATA2 static f32 lit_77815 = -5.207283020019531f; + +/* 80453364-80453368 001964 0004+00 1/1 0/0 0/0 .sdata2 @77816 */ +SECTION_SDATA2 static f32 lit_77816 = -4.30098819732666f; + +/* 80453368-8045336C 001968 0004+00 1/1 0/0 0/0 .sdata2 @77817 */ +SECTION_SDATA2 static f32 lit_77817 = 93.95594787597656f; + +/* 8045336C-80453370 00196C 0004+00 1/1 0/0 0/0 .sdata2 @77818 */ +SECTION_SDATA2 static f32 lit_77818 = -5.218503952026367f; + +/* 80453370-80453374 001970 0004+00 1/1 0/0 0/0 .sdata2 @77819 */ +SECTION_SDATA2 static f32 lit_77819 = 225.6999969482422f; + +/* 80453374-80453378 001974 0004+00 1/1 0/0 0/0 .sdata2 @77820 */ +SECTION_SDATA2 static f32 lit_77820 = 1.809999942779541f; + +/* 80453378-8045337C 001978 0004+00 1/1 0/0 0/0 .sdata2 @77821 */ +SECTION_SDATA2 static f32 lit_77821 = 186.1699981689453f; + +/* 8045337C-80453380 00197C 0004+00 1/1 0/0 0/0 .sdata2 @77822 */ +SECTION_SDATA2 static f32 lit_77822 = -20.290000915527344f; + +/* 80453380-80453384 001980 0004+00 1/1 0/0 0/0 .sdata2 @77823 */ +SECTION_SDATA2 static f32 lit_77823 = -68.208984375f; + +/* 80453384-80453388 001984 0004+00 1/1 0/0 0/0 .sdata2 @77824 */ +SECTION_SDATA2 static f32 lit_77824 = 41.60992431640625f; + +/* 80453388-8045338C 001988 0004+00 1/1 0/0 0/0 .sdata2 @77825 */ +SECTION_SDATA2 static f32 lit_77825 = 0.8837890028953552f; + +/* 8045338C-80453390 00198C 0004+00 1/1 0/0 0/0 .sdata2 @77826 */ +SECTION_SDATA2 static f32 lit_77826 = -72.0f; + +/* 80453390-80453394 001990 0004+00 1/1 0/0 0/0 .sdata2 @77827 */ +SECTION_SDATA2 static f32 lit_77827 = 88.63934326171875f; + +/* 80453394-80453398 001994 0004+00 1/1 0/0 0/0 .sdata2 @77828 */ +SECTION_SDATA2 static f32 lit_77828 = -28.49793243408203f; + +/* 80453398-8045339C 001998 0004+00 1/1 0/0 0/0 .sdata2 @77829 */ +SECTION_SDATA2 static f32 lit_77829 = 0.11516399681568146f; + +/* 8045339C-804533A0 00199C 0004+00 1/1 0/0 0/0 .sdata2 @77830 */ +SECTION_SDATA2 static f32 lit_77830 = 68.33629608154297f; + +/* 804533A0-804533A8 0019A0 0004+04 1/1 0/0 0/0 .sdata2 @77831 */ +SECTION_SDATA2 static f32 lit_77831[1 + 1 /* padding */] = { + -7.667817115783691f, + /* padding */ + 0.0f, +}; + +/* 80141B04-801446D4 13C444 2BD0+00 0/0 1/0 0/0 .text __sinit_d_a_alink_cpp */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __sinit_d_a_alink_cpp(){nofralloc +#include "asm/d/a/d_a_alink/__sinit_d_a_alink_cpp.s" +} +#pragma pop + +#pragma push +#pragma force_active on +REGISTER_CTORS(0x80141B04, __sinit_d_a_alink_cpp); +#pragma pop + +/* 801446D4-801446DC 13F014 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_801446D4() { + nofralloc +#include "asm/d/a/d_a_alink/func_801446D4.s" +} +#pragma pop + +/* 801446DC-801446E4 13F01C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_801446DC() { + nofralloc +#include "asm/d/a/d_a_alink/func_801446DC.s" +} +#pragma pop + +/* 801446E4-801446EC 13F024 0008+00 1/0 0/0 0/0 .text @36@__dt__13dBgS_LinkAcchFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_801446E4() { + nofralloc +#include "asm/d/a/d_a_alink/func_801446E4.s" +} +#pragma pop + +/* 801446EC-801446F4 13F02C 0008+00 1/0 0/0 0/0 .text @20@__dt__13dBgS_LinkAcchFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_801446EC() { + nofralloc +#include "asm/d/a/d_a_alink/func_801446EC.s" +} +#pragma pop + +/* 801446F4-801446FC 13F034 0008+00 1/0 0/0 0/0 .text @20@__dt__15dBgS_LinkGndChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_801446F4() { + nofralloc +#include "asm/d/a/d_a_alink/func_801446F4.s" +} +#pragma pop + +/* 801446FC-80144704 13F03C 0008+00 1/0 0/0 0/0 .text @76@__dt__15dBgS_LinkGndChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_801446FC() { + nofralloc +#include "asm/d/a/d_a_alink/func_801446FC.s" +} +#pragma pop + +/* 80144704-8014470C 13F044 0008+00 1/0 0/0 0/0 .text @60@__dt__15dBgS_LinkGndChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_80144704() { + nofralloc +#include "asm/d/a/d_a_alink/func_80144704.s" +} +#pragma pop + +/* 8014470C-80144714 13F04C 0008+00 1/0 0/0 0/0 .text @16@__dt__16dBgS_LinkRoofChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_8014470C() { + nofralloc +#include "asm/d/a/d_a_alink/func_8014470C.s" +} +#pragma pop + +/* 80144714-8014471C 13F054 0008+00 1/0 0/0 0/0 .text @52@__dt__16dBgS_LinkRoofChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_80144714() { + nofralloc +#include "asm/d/a/d_a_alink/func_80144714.s" +} +#pragma pop + +/* 8014471C-80144724 13F05C 0008+00 1/0 0/0 0/0 .text @36@__dt__16dBgS_LinkRoofChkFv */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void func_8014471C() { + nofralloc +#include "asm/d/a/d_a_alink/func_8014471C.s" +} +#pragma pop + +/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file diff --git a/src/d/a/d_a_alink_whistle.inc b/src/d/a/d_a_alink_whistle.inc index 8b6781e56f..2647a6bb67 100644 --- a/src/d/a/d_a_alink_whistle.inc +++ b/src/d/a/d_a_alink_whistle.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_whistle.inc + * Player Horse / Hawk Grass Whistle action handling + */ + #include "rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h" /* 8011174C-80111770 10C08C 0024+00 1/1 0/0 0/0 .text daAlink_searchWhistle__FP10fopAc_ac_cPv */ @@ -68,9 +73,9 @@ int daAlink_c::procGrassWhistleGetInit() { daObjYobikusa_c* yobikusa = (daObjYobikusa_c*)field_0x27f4; field_0x300c = yobikusa->getType(); - field_0x300e = yobikusa->getPathID(); - field_0x3010 = yobikusa->isPlayerCorrect(); - field_0x3012 = yobikusa->shape_angle.y + 0x8000; + field_0x300e.x = yobikusa->getPathID(); + field_0x300e.y = yobikusa->isPlayerCorrect(); + field_0x300e.z = yobikusa->shape_angle.y + 0x8000; field_0x37c8.set(yobikusa->current.pos.x + cM_ssin(yobikusa->shape_angle.y) * 50.0f, yobikusa->current.pos.y + 50.0f, yobikusa->current.pos.z + cM_scos(yobikusa->shape_angle.y) * 50.0f); @@ -94,7 +99,7 @@ int daAlink_c::procGrassWhistleGet() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; if (frameCtrl->checkAnmEnd()) { - procGrassWhistleWaitInit(field_0x300c, field_0x300e, field_0x3010, field_0x3012, &field_0x37c8); + procGrassWhistleWaitInit(field_0x300c, field_0x300e.x, field_0x300e.y, field_0x300e.z, &field_0x37c8); } else if (mEquipItem == NO_ITEM && frameCtrl->getFrame() >= lit_7710) { setGrassWhistleModel(field_0x300c); @@ -135,11 +140,11 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) { commonProcInit(PROC_HORSE_CALL_WAIT); if (param_0 == 4) { - field_0x3010 = 2; + field_0x300e.y = 2; } else if (param_0 == 1) { - field_0x3010 = 0x3D; + field_0x300e.y = 0x3D; } else { - field_0x3010 = 0x10; + field_0x300e.y = 0x10; } if (i_checkWolf()) { diff --git a/src/d/a/d_a_alink_wolf.inc b/src/d/a/d_a_alink_wolf.inc index 25ed52f66c..fda6e65d3f 100644 --- a/src/d/a/d_a_alink_wolf.inc +++ b/src/d/a/d_a_alink_wolf.inc @@ -1,3 +1,8 @@ +/** + * d_a_alink_wolf.inc + * General Player Wolf action handling + */ + /* 80126740-80126928 121080 01E8+00 2/2 0/0 0/0 .text changeCommon__9daAlink_cFv */ #pragma push #pragma optimization_level 0 @@ -756,7 +761,7 @@ int daAlink_c::procWolfWaitTurnInit() { mNormalSpeed = FLOAT_LABEL(lit_6108); } - field_0x300e = field_0x2fe2; + field_0x300e.x = field_0x2fe2; current.angle.y = shape_angle.y; return 1; @@ -807,7 +812,7 @@ int daAlink_c::procWolfSideStepLandInit(s16 param_0) { field_0x3478 = daAlinkHIO_wlSideStep_c0::m.field_0x14.mCheckFrame; } - field_0x3012 = param_0; + field_0x300e.z = param_0; field_0x2f9d = 4; setFootEffectProcType(2); i_onResetFlg1(0xC); @@ -861,14 +866,14 @@ int daAlink_c::procWolfBackJump() { daAlinkHIO_wlAtnMove_c0::m.field_0x2); current.angle.y = shape_angle.y - -0x8000; - if (field_0x3010 != 0) { + if (field_0x300e.y != 0) { checkWolfAtnDoCharge(); } backJumpSpeedDec(); if (mUnderFrameCtrl[0].checkAnmEnd() && mLinkAcch.ChkGroundHit()) { - procWolfBackJumpLandInit(field_0x3012, field_0x3010); + procWolfBackJumpLandInit(field_0x300e.z, field_0x300e.y); } else if (mDemo.getDemoMode() != 0x10 && current.pos.y < mLastJumpPos.y - daAlinkHIO_wlBackJump_c0::m.field_0x30) { field_0x2f98 = 0; procWolfFallInit(2, daAlinkHIO_wlBackJump_c0::m.field_0x34); @@ -885,8 +890,8 @@ int daAlink_c::procWolfBackJumpLandInit(s16 param_0, s16 param_1) { field_0x2f9d = 4; setFootEffectProcType(2); field_0x2fcc = 10; - field_0x3012 = param_0; - field_0x3010 = param_1; + field_0x300e.z = param_0; + field_0x300e.y = param_1; setStepLandVibration(); return 1; @@ -903,7 +908,7 @@ int daAlink_c::procWolfBackJumpLand() { setWolfAtnMoveDirection(); - if (field_0x3010 != 0) { + if (field_0x300e.y != 0) { checkWolfAtnDoCharge(); } @@ -932,11 +937,11 @@ int daAlink_c::procWolfHowlInit(int param_0) { setSingleAnimeWolfParam(WANM_HOWL_SIT, &daAlinkHIO_wlHowl_c0::m.field_0x14); onModeFlg(0x800000); field_0x3478 = daAlinkHIO_wlHowl_c0::m.field_0x14.mCheckFrame; - field_0x300e = 1; + field_0x300e.x = 1; } else { setSingleAnimeWolfParam(WANM_HOWL, &daAlinkHIO_wlHowl_c0::m.field_0x0); field_0x3478 = daAlinkHIO_wlHowl_c0::m.field_0x0.mCheckFrame; - field_0x300e = 0; + field_0x300e.x = 0; } mNormalSpeed = FLOAT_LABEL(lit_6108); @@ -1979,7 +1984,7 @@ int daAlink_c::procWolfScreamWaitInit() { } mNormalSpeed = FLOAT_LABEL(lit_6108); - field_0x300e = 0; + field_0x300e.x = 0; field_0x3588 = l_wolfBaseAnime; return 1; @@ -1990,7 +1995,7 @@ int daAlink_c::procWolfScreamWait() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; if (!i_checkEndResetFlg1(ERFLG1_UNK_1)) { - if (field_0x300e != 0) { + if (field_0x300e.x != 0) { field_0x2f99 = 5; if (frameCtrl->checkAnmEnd()) { @@ -1999,7 +2004,7 @@ int daAlink_c::procWolfScreamWait() { checkNextActionWolf(1); } } else { - field_0x300e = 1; + field_0x300e.x = 1; setSingleAnimeWolf(WANM_DMG_AIR_FRONT_GETUP, daAlinkHIO_wlDamLarge_c0::m.field_0x0.mSpeed, lit_8676, @@ -2071,14 +2076,14 @@ int daAlink_c::checkNextActionWolfFromLie() { void daAlink_c::setWolfLieMoveVoice(int param_0) { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (frameCtrl->getRate() == FLOAT_LABEL(lit_6108) && field_0x3012 != 0) { - field_0x3012--; + if (frameCtrl->getRate() == FLOAT_LABEL(lit_6108) && field_0x300e.z != 0) { + field_0x300e.z--; } if ((param_0 != 0 && (frameCtrl->checkPass(lit_17382) || frameCtrl->checkPass(lit_7451))) || - (frameCtrl->getRate() == FLOAT_LABEL(lit_6108) && field_0x3012 == 0)) { + (frameCtrl->getRate() == FLOAT_LABEL(lit_6108) && field_0x300e.z == 0)) { voiceStart(Z2SE_WL_V_BREATH_WALK); - field_0x3012 = 30; + field_0x300e.z = 30; } } @@ -2609,7 +2614,7 @@ int daAlink_c::procWolfRollAttackMoveInit() { field_0x3008 = daAlinkHIO_wlAttack_c0::m.mUnkTime; field_0x300a = daAlinkHIO_wlAtLock_c0::m.field_0x28.mEndFrame; - field_0x3012 = 30; + field_0x300e.z = 30; field_0x3198 = 0; field_0x2fe4 = shape_angle.y; voiceStartLevel(Z2SE_WL_V_ROAR); @@ -2704,7 +2709,7 @@ int daAlink_c::procWolfJumpAttackNormalLandInit(int param_0) { setFootEffectProcType(2); field_0x2f9d = 0x18; mNormalSpeed = FLOAT_LABEL(lit_6108); - field_0x3012 = 0; + field_0x300e.z = 0; field_0x300c = param_0; field_0x2f99 = 12; field_0x307e = daAlinkHIO_wlAttack_c0::m.mComboDuration; @@ -2966,9 +2971,9 @@ int daAlink_c::procWolfEnemyHangBiteInit() { field_0x3008 = daAlinkHIO_wlAtBite_c0::m.field_0x28; field_0x300a = 0; field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; field_0x3478 = daAlinkHIO_wlAtBite_c0::m.field_0x40; - field_0x3010 = shape_angle.y; + field_0x300e.y = shape_angle.y; voiceStart(Z2SE_WL_V_BITE_ATTACK); dComIfGp_setPlayerStatus1(0, 0x200000); } @@ -3090,7 +3095,7 @@ int daAlink_c::procWolfPush() { if (frameCtrl->checkAnmEnd()) { if (field_0x300c != 0) { - setSingleAnimeWolf(WANM_PUSH_LIGHT, lit_6040, FLOAT_LABEL(lit_6108), field_0x300e, lit_6109); + setSingleAnimeWolf(WANM_PUSH_LIGHT, lit_6040, FLOAT_LABEL(lit_6108), field_0x300e.x, lit_6109); mUnderFrameCtrl[0].setAttribute(0); field_0x300c = 0; } else { @@ -3225,7 +3230,7 @@ int daAlink_c::procWolfChainReadyInit() { setSingleAnimeWolfParam(WANM_ATTACK_A_START, &daAlinkHIO_wlAtNjump_c0::m.field_0x0); mNormalSpeed = FLOAT_LABEL(lit_6108); field_0x300c = 0; - field_0x300e = 0; + field_0x300e.x = 0; return 1; } @@ -3307,21 +3312,21 @@ void daAlink_c::setSmellSave() { dComIfGs_offEventBit(0x2F04); // OFF: Got Medicine Scent } - dMsgObject_setSmellType(field_0x3012); + dMsgObject_setSmellType(field_0x300e.z); - if (field_0x3012 == SMELL_MEDICINE) { + if (field_0x300e.z == SMELL_MEDICINE) { dComIfGs_onEventBit(0x2F04); // ON: Got Medicine Scent - } else if (field_0x3012 == SMELL_CHILDREN) { + } else if (field_0x300e.z == SMELL_CHILDREN) { i_fopAcM_onSwitch(this, 102); - } else if (field_0x3012 == SMELL_YELIA_POUCH) { + } else if (field_0x300e.z == SMELL_YELIA_POUCH) { i_fopAcM_onSwitch(this, 103); - } else if (field_0x3012 == SMELL_FISH) { + } else if (field_0x300e.z == SMELL_FISH) { dComIfGs_onEventBit(0x6120); // ON: Got Reekfish scent - } else if (field_0x3012 == SMELL_POH) { + } else if (field_0x300e.z == SMELL_POH) { dComIfGs_onEventBit(0x6210); // ON: Got Poe scent } - setGetSubBgm(field_0x3012); + setGetSubBgm(field_0x300e.z); } /* 8013FA14-8013FC24 13A354 0210+00 1/1 0/0 0/0 .text procWolfGetSmellInit__9daAlink_cFv diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index f4884ba097..eb848ea391 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -1,151 +1,24 @@ -// -// Generated By: dol2asm -// Translation Unit: d/a/d_a_player -// +/** + * d_a_player.cpp + * Base Player Actor functionality + */ #include "d/a/d_a_player.h" #include "JSystem/J3DGraphLoader/J3DAnmLoader.h" #include "JSystem/JKernel/JKRSolidHeap.h" #include "SSystem/SComponent/c_math.h" #include "d/a/d_a_alink.h" -#include "dol2asm.h" #include "f_op/f_op_actor_mng.h" #include "m_Do/m_Do_lib.h" #include "rel/d/a/d_a_boomerang/d_a_boomerang.h" #include "rel/d/a/d_a_spinner/d_a_spinner.h" -// -// Forward References: -// - -extern "C" void checkAnmEnd__16daPy_frameCtrl_cFv(); -extern "C" void updateFrame__16daPy_frameCtrl_cFv(); -extern "C" void setFrameCtrl__16daPy_frameCtrl_cFUcssff(); -extern "C" void initOffset__20daPy_boomerangMove_cFPC4cXyz(); -extern "C" void posMove__20daPy_boomerangMove_cFP4cXyzPsP10fopAc_ac_cs(); -extern "C" void bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz(); -extern "C" void setParamData__9daPy_py_cFiiii(); -extern "C" void checkFishingRodItem__9daPy_py_cFi(); -extern "C" void checkBombItem__9daPy_py_cFi(); -extern "C" void checkBottleItem__9daPy_py_cFi(); -extern "C" void checkDrinkBottleItem__9daPy_py_cFi(); -extern "C" void checkOilBottleItem__9daPy_py_cFi(); -extern "C" void checkOpenBottleItem__9daPy_py_cFi(); -extern "C" void checkBowItem__9daPy_py_cFi(); -extern "C" void checkHookshotItem__9daPy_py_cFi(); -extern "C" void checkTradeItem__9daPy_py_cFi(); -extern "C" void checkDungeonWarpItem__9daPy_py_cFi(); -extern "C" void setActor__16daPy_actorKeep_cFv(); -extern "C" void setData__16daPy_actorKeep_cFP10fopAc_ac_c(); -extern "C" void clearData__16daPy_actorKeep_cFv(); -extern "C" void __ct__14daPy_anmHeap_cFUl(); -extern "C" void __dt__14daPy_anmHeap_cFv(); -extern "C" void initData__14daPy_anmHeap_cFv(); -extern "C" void mallocBuffer__14daPy_anmHeap_cFv(); -extern "C" void createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE(); -extern "C" void loadData__14daPy_anmHeap_cFUs(); -extern "C" void loadDataIdx__14daPy_anmHeap_cFUs(); -extern "C" void loadDataPriIdx__14daPy_anmHeap_cFUs(); -extern "C" void loadDataDemoRID__14daPy_anmHeap_cFUsUs(); -extern "C" void setAnimeHeap__14daPy_anmHeap_cFv(); -extern "C" void draw__18daPy_sightPacket_cFv(); -extern "C" void setSight__18daPy_sightPacket_cFv(); -extern "C" void setSightImage__18daPy_sightPacket_cFP7ResTIMG(); -extern "C" void checkMasterSwordEquip__9daPy_py_cFv(); -extern "C" void checkWoodShieldEquip__9daPy_py_cFv(); -extern "C" void getAttentionOffsetY__9daPy_py_cFv(); -extern "C" void checkNowWolfEyeUp__9daPy_py_cFv(); -extern "C" void forceRestartRoom__9daPy_py_cFiUli(); -extern "C" void setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi(); -extern "C" void cancelFmChainGrab__9daPy_py_cFv(); -extern "C" void setLookPos__9daPy_py_cFP4cXyz(); -extern "C" void setPlayerSe__9daPy_py_cFUl(); -extern "C" void linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c(); -extern "C" void wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c(); -extern "C" void checkRoomRestartStart__9daPy_py_cFv(); -extern "C" void checkCarryStartLightBallA__9daPy_py_cFv(); -extern "C" void checkCarryStartLightBallB__9daPy_py_cFv(); -extern "C" void getSpinnerRideSpeed__9daPy_py_cCFv(); -extern "C" void checkSpinnerReflectEffect__9daPy_py_cFv(); -extern "C" void checkBoomerangCharge__9daPy_py_cFv(); -extern "C" bool checkBoomerangChargeTime__9daPy_py_cFv(); -extern "C" void getThrowBoomerangActor__9daPy_py_cFv(); -extern "C" void cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c(); -extern "C" void setPlayerDamage__9daPy_py_cFii(); -extern "C" void setMidnaMotionNum__9daPy_py_cFi(); -extern "C" void setMidnaFaceNum__9daPy_py_cFi(); -extern "C" void daPy_addCalcShort__FPsssss(); -extern "C" extern void* __vt__18daPy_sightPacket_c[4 + 1 /* padding */]; -extern "C" u8 m_midnaActor__9daPy_py_c[4]; -extern "C" u8 m_dropAngleY__20daPy_boomerangMove_c[4]; - -// -// External References: -// - -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void mDoExt_createSolidHeapFromGameToCurrent__FPP7JKRHeapUlUl(); -extern "C" void mDoExt_adjustSolidHeap__FP12JKRSolidHeap(); -extern "C" void mDoExt_destroySolidHeap__FP12JKRSolidHeap(); -extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); -extern "C" void mDoLib_project__FP3VecP3Vec(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fpcSch_JudgeByID__FPvPv(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci(); -extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c(); -extern "C" void setLookPosFromOut__9daAlink_cFP4cXyz(); -extern "C" void startRestartRoom__9daAlink_cFUliii(); -extern "C" void setDamagePoint__9daAlink_cFiiii(); -extern "C" void cancelBoomerangLock__9daAlink_cFP10fopAc_ac_c(); -extern "C" void checkBoomerangChargeEnd__9daAlink_cFv(); -extern "C" void checkBoomerangCarry__9daAlink_cFP10fopAc_ac_c(); -extern "C" void setFmChainPosFromOut__9daAlink_cFP10fopAc_ac_cP4cXyzi(); -extern "C" void __dt__18daPy_sightPacket_cFv(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void freeAll__7JKRHeapFv(); -extern "C" void* __nw__FUl(); -extern "C" void* __nwa__FUl(); -extern "C" void* __nwa__FUli(); -extern "C" void __dl__FPv(); -extern "C" void readIdxResource__10JKRArchiveFPvUlUl(); -extern "C" void reinitGX__6J3DSysFv(); -extern "C" void update__12J3DFrameCtrlFv(); -extern "C" void __ct__15J3DAnmTransformFsPfPsPf(); -extern "C" void __ct__19J3DAnmTextureSRTKeyFv(); -extern "C" void __ct__16J3DAnmTexPatternFv(); -extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); -extern "C" void GXClearVtxDesc(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__18mDoExt_transAnmBas[5]; -extern "C" extern void* __vt__18J3DAnmTransformKey[5]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80453600-80453608 001C00 0004+04 6/6 0/0 0/0 .sdata2 @4215 */ -SECTION_SDATA2 static f32 lit_4215[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; - bool daPy_frameCtrl_c::checkAnmEnd() { if (getEndFlg() != 0 && getNowSetFlg() == 0) { return true; } - if (getRate() == lit_4215[0]) { + if (getRate() == 0.0f) { onEndFlg(); onNowSetFlg(); } @@ -167,7 +40,7 @@ void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 setStart(i_start); setFrame(i_frame); - if (i_rate >= lit_4215[0]) { + if (i_rate >= 0.0f) { setLoop(i_start); } else { setLoop(i_end); @@ -178,12 +51,12 @@ void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 /* 8015E5B0-8015E654 158EF0 00A4+00 0/0 1/1 18/18 .text initOffset__20daPy_boomerangMove_cFPC4cXyz */ -void daPy_boomerangMove_c::initOffset(cXyz const* param_0) { - daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor(); +void daPy_boomerangMove_c::initOffset(cXyz const* i_offset) { + daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor(); - if (boomerang != NULL) { - bgCheckAfterOffset(param_0); - boomerang->onWindCatch(); + if (boomerang_p != NULL) { + bgCheckAfterOffset(i_offset); + boomerang_p->onWindCatch(); } else { field_0x4 = cM_rndF(70.0f) + 30.0f; field_0x8 = cM_rndF(50.0f) + 50.0f; @@ -193,11 +66,9 @@ void daPy_boomerangMove_c::initOffset(cXyz const* param_0) { field_0x0 = 0; } -/* ############################################################################################## */ /* 80451018-8045101C 000518 0004+00 2/2 33/32 103/103 .sbss m_midnaActor__9daPy_py_c */ daMidna_c* daPy_py_c::m_midnaActor; -/* 8045101C-80451020 -00001 0004+00 1/1 1/1 1/1 .sbss None */ /* 8045101C 0002+00 data_8045101C m_dropAngleY__20daPy_boomerangMove_c */ s16 daPy_boomerangMove_c::m_dropAngleY; @@ -207,7 +78,7 @@ s16 daPy_boomerangMove_c::m_eventKeepFlg; /* 8015E654-8015E87C 158F94 0228+00 0/0 1/1 17/17 .text * posMove__20daPy_boomerangMove_cFP4cXyzPsP10fopAc_ac_cs */ int daPy_boomerangMove_c::posMove(cXyz* param_0, s16* param_1, fopAc_ac_c* param_2, s16 param_3) { - daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor(); + daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor(); field_0x2 -= param_3; *param_1 -= param_3; @@ -222,8 +93,8 @@ int daPy_boomerangMove_c::posMove(cXyz* param_0, s16* param_1, fopAc_ac_c* param field_0x4 = 50.0f; } - if (boomerang != NULL) { - if (boomerang->checkForceDelete()) { + if (boomerang_p != NULL) { + if (boomerang_p->checkForceDelete()) { return 0; } @@ -233,61 +104,38 @@ int daPy_boomerangMove_c::posMove(cXyz* param_0, s16* param_1, fopAc_ac_c* param return 0; } - param_0->set(boomerang->current.pos.x + field_0x8 * cM_ssin(field_0x2), - boomerang->current.pos.y + field_0x4, - boomerang->current.pos.z + field_0x8 * cM_scos(field_0x2)); - boomerang->onWindCatch(); + param_0->set(boomerang_p->current.pos.x + field_0x8 * cM_ssin(field_0x2), + boomerang_p->current.pos.y + field_0x4, + boomerang_p->current.pos.z + field_0x8 * cM_scos(field_0x2)); + boomerang_p->onWindCatch(); return 1; } - daAlink_c* link = daAlink_getAlinkActorClass(); - if ((param_2 == NULL || !link->checkBoomerangCarry(param_2)) && - (m_eventKeepFlg == 0 || field_0x0 != 0)) { - s16 tmp = (m_dropAngleY + link->shape_angle.y) + cM_rndF(2048.0f); + daAlink_c* player_p = daAlink_getAlinkActorClass(); + if ((param_2 == NULL || !player_p->checkBoomerangCarry(param_2)) && + (m_eventKeepFlg == 0 || field_0x0 != 0)) + { + s16 tmp = (m_dropAngleY + player_p->shape_angle.y) + cM_rndF(2048.0f); - param_0->x = link->current.pos.x + field_0x8 * cM_ssin(tmp); - param_0->z = link->current.pos.z + field_0x8 * cM_scos(tmp); + param_0->x = player_p->current.pos.x + field_0x8 * cM_ssin(tmp); + param_0->z = player_p->current.pos.z + field_0x8 * cM_scos(tmp); m_dropAngleY += 0x2000; } return 0; } -/* ############################################################################################## */ -/* 80453630-80453638 001C30 0008+00 1/1 0/0 0/0 .sdata2 @4379 */ -SECTION_SDATA2 static f64 lit_4379 = 0.5; - -/* 80453638-80453640 001C38 0008+00 1/1 0/0 0/0 .sdata2 @4380 */ -SECTION_SDATA2 static f64 lit_4380 = 3.0; - -/* 80453640-80453648 001C40 0008+00 1/1 0/0 0/0 .sdata2 @4381 */ -SECTION_SDATA2 static u8 lit_4381[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - /* 8015E87C-8015EA0C 1591BC 0190+00 1/1 1/1 17/17 .text * bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz */ -// matches with literals (used in inlines) -#ifdef NONMATCHING -void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) { - daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor(); - if (boomerang != NULL) { - field_0x4 = param_0->y - boomerang->current.pos.y; - field_0x8 = boomerang->current.pos.absXZ(*param_0); - field_0x2 = - cM_atan2s(param_0->x - boomerang->current.pos.x, param_0->z - boomerang->current.pos.z); +void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* i_offset) { + daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor(); + if (boomerang_p != NULL) { + field_0x4 = i_offset->y - boomerang_p->current.pos.y; + field_0x8 = boomerang_p->current.pos.absXZ(*i_offset); + field_0x2 = cM_atan2s(i_offset->x - boomerang_p->current.pos.x, + i_offset->z - boomerang_p->current.pos.z); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) { - nofralloc -#include "asm/d/a/d_a_player/bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz.s" -} -#pragma pop -#endif /* 8015EA0C-8015EA20 15934C 0014+00 0/0 3/3 0/0 .text setParamData__9daPy_py_cFiiii */ u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) { @@ -301,12 +149,11 @@ BOOL daPy_py_c::checkFishingRodItem(int i_itemNo) { } /* 8015EA48-8015EA88 159388 0040+00 0/0 3/3 0/0 .text checkBombItem__9daPy_py_cFi */ -BOOL daPy_py_c::checkBombItem(int param_0) { - return param_0 == NORMAL_BOMB || param_0 == WATER_BOMB || param_0 == POKE_BOMB; +BOOL daPy_py_c::checkBombItem(int i_itemNo) { + return i_itemNo == NORMAL_BOMB || i_itemNo == WATER_BOMB || i_itemNo == POKE_BOMB; } /* 8015EA88-8015EAD8 1593C8 0050+00 0/0 5/5 0/0 .text checkBottleItem__9daPy_py_cFi */ -// is there a way to write this with a switch? BOOL daPy_py_c::checkBottleItem(int i_itemNo) { return (i_itemNo >= EMPTY_BOTTLE && i_itemNo <= FAIRY) || i_itemNo == BEE_CHILD || i_itemNo == WORM || i_itemNo == FAIRY_DROP || i_itemNo == CHUCHU_BLACK || @@ -315,7 +162,6 @@ BOOL daPy_py_c::checkBottleItem(int i_itemNo) { /* 8015EAD8-8015EB40 159418 0068+00 0/0 3/3 0/0 .text checkDrinkBottleItem__9daPy_py_cFi */ -// is there a way to write this with a switch? BOOL daPy_py_c::checkDrinkBottleItem(int i_itemNo) { return (i_itemNo >= RED_BOTTLE && i_itemNo <= HALF_MILK_BOTTLE) || i_itemNo == RED_BOTTLE_2 || i_itemNo == UGLY_SOUP || i_itemNo == HOT_SPRING || i_itemNo == BEE_CHILD || @@ -534,7 +380,7 @@ JKRHeap* daPy_anmHeap_c::setAnimeHeap() { /* ############################################################################################## */ /* 803BA0C0-803BA14C 0171E0 0089+03 1/1 0/0 0/0 .data l_sightDL */ -SECTION_DATA static u8 l_sightDL[137] = { +static u8 l_sightDL[] = { 0x10, 0x00, 0x00, 0x10, 0x40, 0xFF, 0xFF, 0x42, 0x80, 0x08, 0x30, 0x3C, 0xF3, 0xCF, 0x00, 0x10, 0x00, 0x00, 0x10, 0x18, 0x3C, 0xF3, 0xCF, 0x00, 0x61, 0x28, 0x38, 0x03, 0xC0, 0x61, 0xC0, 0x08, 0x42, 0x8F, 0x61, 0xC1, 0x08, 0xE6, 0x70, 0x61, 0x43, 0x00, 0x00, 0x01, 0x61, 0x40, 0x00, 0x00, @@ -546,15 +392,7 @@ SECTION_DATA static u8 l_sightDL[137] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -/* 80453678-8045367C 001C78 0004+00 1/1 0/0 0/0 .sdata2 @4668 */ -SECTION_SDATA2 static u32 lit_4668 = 0xFF8000FF; - -/* 8045367C-80453680 001C7C 0004+00 1/1 0/0 0/0 .sdata2 @4669 */ -SECTION_SDATA2 static u32 lit_4669 = 0x321400FF; - /* 8015F1A0-8015F2FC 159AE0 015C+00 1/0 1/1 0/0 .text draw__18daPy_sightPacket_cFv */ -// matches with literals -#ifdef NONMATCHING void daPy_sightPacket_c::draw() { GXTexObj texObj; @@ -574,8 +412,7 @@ void daPy_sightPacket_c::draw() { u8 tmp2 = mpImg->mipmapCount; tmp2 = tmp2 > 1; GXInitTexObj(&texObj, mpData, mpImg->width, mpImg->height, (GXTexFmt)mpImg->format, - (GXTexWrapMode)mpImg->wrapS, (GXTexWrapMode)mpImg->wrapT, - (GXBool)(tmp2)); + (GXTexWrapMode)mpImg->wrapS, (GXTexWrapMode)mpImg->wrapT, (GXBool)(tmp2)); GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0, 0.0, 0.0, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&texObj, GX_TEXMAP0); GXLoadPosMtxImm(field_0x14, GX_PNMTX0); @@ -584,23 +421,13 @@ void daPy_sightPacket_c::draw() { GXCallDisplayList(l_sightDL, 0x80); J3DShape::resetVcdVatCache(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_sightPacket_c::draw() { - nofralloc -#include "asm/d/a/d_a_player/draw__18daPy_sightPacket_cFv.s" -} -#pragma pop -#endif /* 8015F2FC-8015F384 159C3C 0088+00 0/0 1/1 0/0 .text setSight__18daPy_sightPacket_cFv */ void daPy_sightPacket_c::setSight() { - Vec tmp; + Vec proj; - mDoLib_project(&mPos, &tmp); - mDoMtx_stack_c::transS(tmp.x, tmp.y, tmp.z); + mDoLib_project(&mPos, &proj); + mDoMtx_stack_c::transS(proj.x, proj.y, proj.z); mDoMtx_stack_c::scaleM(32.0f, 32.0f, 32.0f); mDoMtx_copy(mDoMtx_stack_c::get(), field_0x14); dComIfGd_set2DXlu(this); @@ -608,9 +435,9 @@ void daPy_sightPacket_c::setSight() { /* 8015F384-8015F398 159CC4 0014+00 0/0 1/1 0/0 .text * setSightImage__18daPy_sightPacket_cFP7ResTIMG */ -void daPy_sightPacket_c::setSightImage(ResTIMG* p_img) { - mpImg = p_img; - mpData = (u8*)p_img + p_img->imageOffset; +void daPy_sightPacket_c::setSightImage(ResTIMG* i_img) { + mpImg = i_img; + mpData = (u8*)i_img + i_img->imageOffset; } /* 8015F398-8015F3C4 159CD8 002C+00 0/0 8/8 10/10 .text checkMasterSwordEquip__9daPy_py_cFv */ @@ -676,8 +503,8 @@ void daPy_py_c::cancelFmChainGrab() { } /* 8015F4F0-8015F520 159E30 0030+00 0/0 0/0 17/17 .text setLookPos__9daPy_py_cFP4cXyz */ -void daPy_py_c::setLookPos(cXyz* p_pos) { - daAlink_getAlinkActorClass()->setLookPosFromOut(p_pos); +void daPy_py_c::setLookPos(cXyz* i_pos) { + daAlink_getAlinkActorClass()->setLookPosFromOut(i_pos); } /* 8015F520-8015F55C 159E60 003C+00 0/0 0/0 4/4 .text setPlayerSe__9daPy_py_cFUl */ @@ -687,46 +514,16 @@ void daPy_py_c::setPlayerSe(u32 i_sfxID) { /* 8015F55C-8015F60C 159E9C 00B0+00 1/1 0/0 2/2 .text * linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */ -// regalloc -#ifdef NONMATCHING -bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* p_ac) { - bool check_carry = false; - bool ret = false; - - if (fopAcM_checkCarryNow(p_ac)) { - if (daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(p_ac)) { - check_carry = true; - } - } - - if (check_carry && - dComIfGp_checkCameraAttentionStatus(i_dComIfGp_getPlayerCameraID(0), 2) != 0) { - ret = true; - } - - return ret; +bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* i_actor) { + return (fopAcM_checkCarryNow(i_actor) && + daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(i_actor)) && + dComIfGp_checkCameraAttentionStatus(i_dComIfGp_getPlayerCameraID(0), 2); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_player/linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s" -} -#pragma pop -#endif /* 8015F60C-8015F660 159F4C 0054+00 0/0 0/0 2/2 .text * wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */ -bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* param_0){ - bool ret = false; - if (checkNowWolf()) { - if (linkGrabSubjectNoDraw(param_0)) { - ret = true; - } - } - return ret; +bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* i_actor) { + return checkNowWolf() && linkGrabSubjectNoDraw(i_actor); } u32 daPy_py_c::getLastSceneMode() { @@ -737,7 +534,6 @@ u32 daPy_py_c::getLastSceneMode() { */ bool daPy_py_c::checkRoomRestartStart() { u8 mode = getLastSceneMode(); - if (mode == 4 || mode == 8 || mode == 5) { return true; } @@ -749,7 +545,8 @@ bool daPy_py_c::checkRoomRestartStart() { u32 daPy_py_c::checkCarryStartLightBallA() { if (checkRoomRestartStart() || !i_dComIfGp_getStage() || !i_dComIfGp_getStage()->getStagInfo() || - i_dStage_stagInfo_GetSaveTbl(i_dComIfGp_getStage()->getStagInfo()) != 0x17) { + i_dStage_stagInfo_GetSaveTbl(i_dComIfGp_getStage()->getStagInfo()) != 0x17) + { return FALSE; } @@ -760,7 +557,8 @@ u32 daPy_py_c::checkCarryStartLightBallA() { u32 daPy_py_c::checkCarryStartLightBallB() { if (checkRoomRestartStart() || !i_dComIfGp_getStage() || !i_dComIfGp_getStage()->getStagInfo() || - i_dStage_stagInfo_GetSaveTbl(i_dComIfGp_getStage()->getStagInfo()) != 0x17) { + i_dStage_stagInfo_GetSaveTbl(i_dComIfGp_getStage()->getStagInfo()) != 0x17) + { return FALSE; } @@ -773,34 +571,22 @@ f32 daPy_py_c::getSpinnerRideSpeed() const { if (checkSpinnerRide()) { rideSpeed = speedF; } else { - rideSpeed = lit_4215[0]; + rideSpeed = 0.0f; } return rideSpeed; } /* 8015F814-8015F89C 15A154 0088+00 0/0 0/0 1/1 .text checkSpinnerReflectEffect__9daPy_py_cFv */ -// matches with literals -#ifdef NONMATCHING bool daPy_py_c::checkSpinnerReflectEffect() { - daSpinner_c* spinner = (daSpinner_c*)getSpinnerActor(); + daSpinner_c* spinner_p = (daSpinner_c*)getSpinnerActor(); - if (spinner != NULL && spinner->reflectAccept()) { + if (spinner_p != NULL && spinner_p->reflectAccept()) { return true; } return false; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daPy_py_c::checkSpinnerReflectEffect() { - nofralloc -#include "asm/d/a/d_a_player/checkSpinnerReflectEffect__9daPy_py_cFv.s" -} -#pragma pop -#endif /* 8015F89C-8015F8C8 15A1DC 002C+00 0/0 0/0 7/7 .text checkBoomerangCharge__9daPy_py_cFv */ @@ -809,8 +595,8 @@ bool daPy_py_c::checkBoomerangCharge() { } /* 8015F8C8-8015F8D0 15A208 0008+00 0/0 0/0 1/1 .text checkBoomerangChargeTime__9daPy_py_cFv */ -bool daPy_py_c::checkBoomerangChargeTime() { - return false; +int daPy_py_c::checkBoomerangChargeTime() { + return 0; } /* 8015F8D0-8015F8E4 15A210 0014+00 3/3 1/1 5/5 .text getThrowBoomerangActor__9daPy_py_cFv */ @@ -821,26 +607,26 @@ daBoomerang_c* daPy_py_c::getThrowBoomerangActor() { /* 8015F8E4-8015F914 15A224 0030+00 0/0 0/0 2/2 .text * cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c */ -void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* p_ac) { - daAlink_getAlinkActorClass()->cancelBoomerangLock(p_ac); +void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* i_actor) { + daAlink_getAlinkActorClass()->cancelBoomerangLock(i_actor); } /* 8015F914-8015F954 15A254 0040+00 0/0 0/0 2/2 .text setPlayerDamage__9daPy_py_cFii */ -void daPy_py_c::setPlayerDamage(int param_0, int param_1) { - daAlink_getAlinkActorClass()->setDamagePoint(param_0, 0, param_1, 0); +void daPy_py_c::setPlayerDamage(int i_dmgAmount, int i_setDmgTimer) { + daAlink_getAlinkActorClass()->setDamagePoint(i_dmgAmount, FALSE, i_setDmgTimer, 0); } /* 8015F954-8015F968 15A294 0014+00 0/0 3/3 0/0 .text setMidnaMotionNum__9daPy_py_cFi */ -void daPy_py_c::setMidnaMotionNum(int motion_num) { +void daPy_py_c::setMidnaMotionNum(int i_motionNum) { if (m_midnaActor != NULL) { - m_midnaActor->setMotionNum(motion_num); + m_midnaActor->setMotionNum(i_motionNum); } } /* 8015F968-8015F97C 15A2A8 0014+00 0/0 3/3 0/0 .text setMidnaFaceNum__9daPy_py_cFi */ -void daPy_py_c::setMidnaFaceNum(int face_num) { +void daPy_py_c::setMidnaFaceNum(int i_faceNum) { if (m_midnaActor != NULL) { - m_midnaActor->setFaceNum(face_num); + m_midnaActor->setFaceNum(i_faceNum); } } diff --git a/src/d/cc/d_cc_s.cpp b/src/d/cc/d_cc_s.cpp index 81bf73fc7a..76d600829e 100644 --- a/src/d/cc/d_cc_s.cpp +++ b/src/d/cc/d_cc_s.cpp @@ -623,18 +623,18 @@ void dCcS::SetAtTgGObjInf(bool i_setAt, bool i_setTg, cCcD_Obj* param_2, cCcD_Ob } if (i_setAt) { - dCcD_HitCallback cb = atObjInf->GetAtHitCallback(); + dCcD_HitCallback at_callback = atObjInf->GetAtHitCallback(); - if (cb != NULL) { - cb(atObjInf->GetAc(), atObjInf, tgObjInf->GetAc(), tgObjInf); + if (at_callback != NULL) { + at_callback(atObjInf->GetAc(), atObjInf, tgObjInf->GetAc(), tgObjInf); } } if (i_setTg) { - dCcD_HitCallback cb = tgObjInf->GetTgHitCallback(); + dCcD_HitCallback tg_callback = tgObjInf->GetTgHitCallback(); - if (cb != NULL) { - cb(tgObjInf->GetAc(), tgObjInf, atObjInf->GetAc(), atObjInf); + if (tg_callback != NULL) { + tg_callback(tgObjInf->GetAc(), tgObjInf, atObjInf->GetAc(), atObjInf); } } diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index 9131ee4258..61d44ee272 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -2023,7 +2023,7 @@ asm void dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dCamera_c::GetCameraTypeFromCameraName(char const* param_0) { +asm int dCamera_c::GetCameraTypeFromCameraName(char const* param_0) { nofralloc #include "asm/d/d_camera/GetCameraTypeFromCameraName__9dCamera_cFPCc.s" } diff --git a/src/d/d_eye_hl.cpp b/src/d/d_eye_hl.cpp index f70e5a32bf..7b4b1d28e2 100644 --- a/src/d/d_eye_hl.cpp +++ b/src/d/d_eye_hl.cpp @@ -39,11 +39,11 @@ void dEyeHL_c::remove() { /* ############################################################################################## */ /* 80450FA8-80450FB0 0004A8 0004+04 3/3 0/0 0/0 .sbss m_obj__12dEyeHL_mng_c */ -dEyeHL_mng_c* dEyeHL_mng_c::m_obj; +dEyeHL_c* dEyeHL_mng_c::m_obj; /* 8009CA48-8009CB14 097388 00CC+00 0/0 1/1 0/0 .text update__12dEyeHL_mng_cFv */ void dEyeHL_mng_c::update() { - dEyeHL_mng_c* obj = m_obj; + dEyeHL_c* obj = m_obj; if (g_envHIO[0x10] == 0 || !i_dComIfGp_event_runCheck()) { for (; obj != NULL; obj = obj->m_next) { @@ -72,8 +72,8 @@ void dEyeHL_mng_c::entry(dEyeHL_c* i_obj) { */ void dEyeHL_mng_c::remove(dEyeHL_c* i_obj) { if (i_obj->m_timg != NULL) { - dEyeHL_mng_c* prev = i_obj->m_pre; - dEyeHL_mng_c* next = i_obj->m_next; + dEyeHL_c* prev = i_obj->m_pre; + dEyeHL_c* next = i_obj->m_next; if (next != NULL) { next->m_pre = prev; diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp index a698d8d266..e07fd63e27 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -319,7 +319,7 @@ bool STControl::checkDownTrigger() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dLib_getEventSwitchNo(int param_0) { +asm u8 dLib_getEventSwitchNo(int param_0) { nofralloc #include "asm/d/d_lib/dLib_getEventSwitchNo__Fi.s" } diff --git a/src/d/kankyo/d_kankyo_rain.cpp b/src/d/kankyo/d_kankyo_rain.cpp index 5c904fbe88..0ce667c27c 100644 --- a/src/d/kankyo/d_kankyo_rain.cpp +++ b/src/d/kankyo/d_kankyo_rain.cpp @@ -4,13 +4,14 @@ // #include "d/kankyo/d_kankyo_rain.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "SSystem/SComponent/c_counter.h" +#include "SSystem/SComponent/c_math.h" #include "d/a/d_a_player.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "f_op/f_op_actor_mng.h" #include "m_Do/m_Do_lib.h" -#include "SSystem/SComponent/c_math.h" -#include "JSystem/JKernel/JKRHeap.h" // // Forward References: @@ -177,7 +178,6 @@ extern "C" extern void* __vt__19dKankyo_snow_Packet[5]; extern "C" extern void* __vt__18dBgS_ObjGndChk_All[12]; extern "C" extern void* __vt__9J3DPacket[5]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_Counter[12 + 4 /* padding */]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4]; extern "C" u8 m_mode__7dDemo_c[4]; @@ -380,47 +380,50 @@ SECTION_SDATA2 static f32 lit_4114 = 4100.0f; // Matches with literals #ifdef NONMATCHING void dKyr_lenzflare_move() { - dKankyo_sun_Packet* sunPacket = g_env_light.mpSunPacket; - dKankyo_sunlenz_Packet* sunLenzPacket = g_env_light.mpSunLenzPacket; + dKankyo_sun_Packet* sun_p = g_env_light.mpSunPacket; + dKankyo_sunlenz_Packet* lenz_p = g_env_light.mpSunLenzPacket; camera_class* iVar6 = dComIfGp_getCamera(0); - + cXyz cStack_48; cXyz cStack_54; cXyz local_60; cXyz cStack_6c; - if (sunPacket->field_0x5c < 0.0001) { + if (sun_p->mVisibility < 0.0001) { return; } dKy_set_eyevect_calc(iVar6, &cStack_48, 4000.0f, 4000.0f); - dKyr_get_vectle_calc(&cStack_48, sunPacket->mPos, &local_60); - sunLenzPacket->mPositions[0] = sunPacket->mPos[0]; - sunLenzPacket->mPositions[1] = sunPacket->mPos[0]; + dKyr_get_vectle_calc(&cStack_48, sun_p->mPos, &local_60); + lenz_p->mPositions[0] = sun_p->mPos[0]; + lenz_p->mPositions[1] = sun_p->mPos[0]; cXyz local_78; cXyz cStack_84; cXyz local_90; - mDoLib_project(sunLenzPacket->mPositions, &cStack_84); + mDoLib_project(lenz_p->mPositions, &cStack_84); local_90.x = 304.0f; local_90.y = 224.0f; - local_90.z = 0.0054931640625f; // Maybe 45 / 8192 + local_90.z = 0.0054931640625f; // Maybe 45 / 8192 dKyr_get_vectle_calc(&local_90, &cStack_84, &local_78); - sunLenzPacket->field_0x94 = cM_atan2s(local_78.x, local_78.y); - sunLenzPacket->field_0x94 *= 0.0054931640625f; - sunLenzPacket->field_0x94 += 180.0f; + lenz_p->field_0x94 = cM_atan2s(local_78.x, local_78.y); + lenz_p->field_0x94 *= 0.0054931640625f; + lenz_p->field_0x94 += 180.0f; dKyr_get_vectle_calc(&iVar6->mLookat.mEye, &iVar6->mLookat.mCenter, &cStack_6c); for (int i = 2; i < 8; i++) { if (i == 2) { f32 fVar3 = local_60.abs(cStack_6c); f32 fVar4 = 250.0f + 600.0f * fVar3; - sunLenzPacket->mPositions[i].x = sunPacket->mPos[0].x - local_60.x * fVar4 * i; - sunLenzPacket->mPositions[i].y = sunPacket->mPos[0].y - local_60.y * fVar4 * i; - sunLenzPacket->mPositions[i].z = sunPacket->mPos[0].z - local_60.z * fVar4 * i; + lenz_p->mPositions[i].x = sun_p->mPos[0].x - local_60.x * fVar4 * i; + lenz_p->mPositions[i].y = sun_p->mPos[0].y - local_60.y * fVar4 * i; + lenz_p->mPositions[i].z = sun_p->mPos[0].z - local_60.z * fVar4 * i; } else { f32 fVar3 = local_60.abs(cStack_6c); f32 fVar4 = 250.0f + 110.0f * fVar3; - sunLenzPacket->mPositions[i].x = sunPacket->mPos[0].x - (4100.0f * local_60.x + local_60.x * fVar4 * i); - sunLenzPacket->mPositions[i].y = sunPacket->mPos[0].y - (4100.0f * local_60.y + local_60.y * fVar4 * i); - sunLenzPacket->mPositions[i].z = sunPacket->mPos[0].z - (4100.0f * local_60.z + local_60.z * fVar4 * i); + lenz_p->mPositions[i].x = + sun_p->mPos[0].x - (4100.0f * local_60.x + local_60.x * fVar4 * i); + lenz_p->mPositions[i].y = + sun_p->mPos[0].y - (4100.0f * local_60.y + local_60.y * fVar4 * i); + lenz_p->mPositions[i].z = + sun_p->mPos[0].z - (4100.0f * local_60.z + local_60.z * fVar4 * i); } } } @@ -561,239 +564,252 @@ SECTION_SDATA2 static f32 lit_4376 = 21678.0f; SECTION_SDATA2 static f64 lit_4379 = 4503599627370496.0 /* cast u32 to float */; /* 8005BF08-8005CC5C 056848 0D54+00 0/0 1/1 0/0 .text dKyr_sun_move__Fv */ -// regalloc +// matches with literals #ifdef NONMATCHING void dKyr_sun_move() { - dKankyo_sun_Packet* sunPacket = g_env_light.mpSunPacket; - dKankyo_sunlenz_Packet* sunLenzPacket = g_env_light.mpSunLenzPacket; - cXyz local_90; - cXyz cStack_9c; - f32 dVar20; - camera_class* pCamera = dComIfGp_getCamera(0); - f32 dVar19 = 0.0f; - if (struct_80450EEC[0] == 0) { - S_parcent_bak = dVar19; - struct_80450EEC[0] = 1; - } - u8 r22 = 0; - u8 r21 = 0; - s32 r20 = 0; - u32 stType = dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()); - if ((g_env_light.mBaseLightInfluence.mColor.r == 0) && (stType != 2)) { - dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mBaseLightInfluence.mPosition, &local_90); + dKankyo_sun_Packet* sun_p = g_env_light.mpSunPacket; + dKankyo_sunlenz_Packet* lenz_p = g_env_light.mpSunLenzPacket; + camera_class* camera_p2 = dComIfGp_getCamera(0); + camera_class* camera_p = dComIfGp_getCamera(0); + cXyz sp54; + + f32 temp_f31; + f32 var_f30 = 0.0f; + static f32 S_parcent_bak = 0.0f; + + u8 var_r22 = 0; + u8 var_r21 = 0; + s32 var_r20 = 0; + + u32 st_type = dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()); + + if (g_env_light.mBaseLightInfluence.mColor.r == 0 && st_type != ST_ROOM) { + dKyr_get_vectle_calc(&camera_p2->mLookat.mEye, &g_env_light.mBaseLightInfluence.mPosition, + &sp54); } else { - dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &local_90); + dKyr_get_vectle_calc(&camera_p2->mLookat.mEye, &g_env_light.mSunPos2, &sp54); } - sunPacket->mPos[0].x = pCamera->mLookat.mEye.x + 8000.0f * local_90.x; - sunPacket->mPos[0].y = pCamera->mLookat.mEye.y + 8000.0f * local_90.y; - sunPacket->mPos[0].z = pCamera->mLookat.mEye.z + 8000.0f * local_90.z; + sun_p->mPos[0].x = camera_p2->mLookat.mEye.x + 8000.0f * sp54.x; + sun_p->mPos[0].y = camera_p2->mLookat.mEye.y + 8000.0f * sp54.y; + sun_p->mPos[0].z = camera_p2->mLookat.mEye.z + 8000.0f * sp54.z; - f32 fVar4 = (sunPacket->mPos[0].y - pCamera->mLookat.mEye.y) / 8000.0f; - if (fVar4 < 0.0f) { - fVar4 = 0.0f; + f32 var_f1 = (sun_p->mPos[0].y - camera_p2->mLookat.mEye.y) / 8000.0f; + if (var_f1 < 0.0f) { + var_f1 = 0.0f; } - if (fVar4 >= 1.0f) { - fVar4 = 1.0f; + if (var_f1 >= 1.0f) { + var_f1 = 1.0f; } - fVar4 = 1.0f - fVar4; - fVar4 *= fVar4; - dVar20 = 1.0f - fVar4; - - if (i_dComIfGp_getStage()->getStagInfo() != 0) { + var_f1 = 1.0f - var_f1; + var_f1 *= var_f1; + temp_f31 = 1.0f - var_f1; + + if (i_dComIfGp_getStage()->getStagInfo() != NULL) { dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()); } - if (sunPacket->field_0x28) { - sunPacket->field_0x28--; + if (sun_p->field_0x28) { + sun_p->field_0x28--; } - sunPacket->field_0x29 = 0; - if (g_env_light.mDaytime > 77.5f && g_env_light.mDaytime < 285.0f && dKy_rain_check() < 0x14 && - strcmp(dComIfGp_getStartStageName(), "F_SP200") != 0 && - strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) { - f32 local_f8 = 0.0f; - cLib_addCalc( - &sunPacket->field_0x60, - 1.0f, - 1.0f / 20.0f, - 1.0f / 10.0f, - 0.00001f); - - if (pCamera != 0) { - local_f8 = pCamera->mCamera.TrimHeight(); - } - cXyz cStack_a8; - mDoLib_project(sunPacket->mPos, &cStack_a8); - for (int i = 0; i < 5; i++) { - cXyz local_b4 = cStack_a8; - local_b4.x -= sun_chkpnt[i][0]; - local_b4.y -= sun_chkpnt[i][1]; - if (local_b4.x > 0.0f && - local_b4.x < 608.0f && - local_b4.y > local_f8 && - local_b4.y < 458.0f - local_f8) - { - if ((sunPacket->field_0x44)[i] >= 0x00FFFFFF){ - r22++; - if (i == 0) { - r21++; - } + sun_p->field_0x29 = 0; + if (g_env_light.mDaytime > 77.5f && g_env_light.mDaytime < 285.0f && dKy_rain_check() < 20 && + strcmp(dComIfGp_getStartStageName(), "F_SP200") != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) + { + f32 var_f28 = 0.0f; + cLib_addCalc(&sun_p->mSunAlpha, 1.0f, 1.0f / 20.0f, 1.0f / 10.0f, 0.00001f); + + if (camera_p != NULL) { + var_f28 = camera_p->mCamera.TrimHeight(); + } + + cXyz sp48; + mDoLib_project(sun_p->mPos, &sp48); + + for (int i = 0; i < 5; i++) { + cXyz sp3C = sp48; + sp3C.x -= sun_chkpnt[i][0]; + sp3C.y -= sun_chkpnt[i][1]; + if (sp3C.x > 0.0f && sp3C.x < 608.0f && sp3C.y > var_f28 && sp3C.y < 458.0f - var_f28) { + if (sun_p->field_0x44[i] >= 0xFFFFFF) { + var_r22++; + if (i == 0) { + var_r21++; } - dComIfGd_peekZ(local_b4.x, local_b4.y, sunPacket->field_0x44 + i); - } else { - sunPacket->field_0x44[i] = 0; - r20++; } + dComIfGd_peekZ(sp3C.x, sp3C.y, sun_p->field_0x44 + i); + } else { + sun_p->field_0x44[i] = 0; + var_r20++; } - if (r20 != 0 && r22 != 0 && r21 != 0) { - r21 = 1; - r22 = 5; - } - if (r22 != 0) { - if (sunPacket->field_0x28 < 5) { - sunPacket->field_0x28 += 2; - } - sunPacket->field_0x29 = 1; - } - sunLenzPacket->field_0x84 = sunLenzPacket->field_0x8c; - sunLenzPacket->field_0x88 = sunLenzPacket->field_0x90; - sunLenzPacket->field_0x8c = 1000000000.0f; - sunLenzPacket->field_0x90 = 0.0f; - cXyz local_cc; - local_cc.x = 304.0f; - local_cc.y = 224.0f; - local_cc.z = 0.0f; - sunLenzPacket->field_0x98 = local_cc.abs(cStack_a8); - sunLenzPacket->field_0x98 /= 450.0f; - if (sunLenzPacket->field_0x98 > 1.0f) { - sunLenzPacket->field_0x98 = 1.0f; - } - sunLenzPacket->field_0x98 = 1.0f - sunLenzPacket->field_0x98; - dVar19 = sunLenzPacket->field_0x98 * sunLenzPacket->field_0x98; - sunLenzPacket->field_0x98 = 1.0f - dVar19; - } else { - cLib_addCalc(&sunPacket->field_0x60, 0.0f, 0.1f, 0.05f, 0.001f); - r22 = 0; - sunPacket->field_0x28 = 0; - sunPacket->field_0x29 = 0; - } + } + if (var_r20 != 0 && var_r22 != 0 && var_r21 != 0) { + var_r21 = 1; + var_r22 = 5; + } + + if (var_r22 != 0) { + if (sun_p->field_0x28 < 5) { + sun_p->field_0x28 += 2; + } + sun_p->field_0x29 = 1; + } + + lenz_p->field_0x84 = lenz_p->field_0x8c; + lenz_p->field_0x88 = lenz_p->field_0x90; + lenz_p->field_0x8c = 1000000000.0f; + lenz_p->field_0x90 = 0.0f; + + cXyz sp30; + sp30.x = 304.0f; + sp30.y = 224.0f; + sp30.z = 0.0f; + + lenz_p->mDistFalloff = sp30.abs(sp48); + lenz_p->mDistFalloff /= 450.0f; + if (lenz_p->mDistFalloff > 1.0f) { + lenz_p->mDistFalloff = 1.0f; + } + lenz_p->mDistFalloff = 1.0f - lenz_p->mDistFalloff; + var_f30 = lenz_p->mDistFalloff * lenz_p->mDistFalloff; + lenz_p->mDistFalloff = 1.0f - var_f30; + } else { + cLib_addCalc(&sun_p->mSunAlpha, 0.0f, 0.1f, 0.05f, 0.001f); + var_r22 = 0; + sun_p->field_0x28 = 0; + sun_p->field_0x29 = 0; + } if (g_env_light.mColpatWeather != 0 || g_env_light.mSnowCount > 10) { - r21 = 0; - r22 = 0; + var_r21 = 0; + var_r22 = 0; } - if (stType == 2) { - r21 = 0; - r22 = 0; + if (st_type == ST_ROOM) { + var_r21 = 0; + var_r22 = 0; } - if (r21 != 0) { - if (r22 == 4) { - cLib_addCalc(&sunPacket->field_0x5c, 1.0f, 0.5f, 0.5f, 0.01f); + if (var_r21 != 0) { + if (var_r22 == 4) { + cLib_addCalc(&sun_p->mVisibility, 1.0f, 0.5f, 0.5f, 0.01f); } else { - cLib_addCalc(&sunPacket->field_0x5c, 1.0f, 0.2f, 0.3f, 0.001f); + cLib_addCalc(&sun_p->mVisibility, 1.0f, 0.2f, 0.3f, 0.001f); } + } else if (var_r22 < 1) { + cLib_addCalc(&sun_p->mVisibility, 0.0f, 0.5f, 0.5f, 0.001f); } else { - if (r22 < 1) { - cLib_addCalc(&sunPacket->field_0x5c, 0.0f, 0.5f, 0.5f, 0.001f); - } else { - cLib_addCalc(&sunPacket->field_0x5c, 0.0f, 0.2f, 0.3f, 0.001f); - } + cLib_addCalc(&sun_p->mVisibility, 0.0f, 0.2f, 0.3f, 0.001f); } - if (sunPacket->field_0x5c <= 0.0f) { + if (sun_p->mVisibility <= 0.0f) { g_env_light.mpSunLenzPacket->mDrawLenzInSky = 1; } else { g_env_light.mpSunLenzPacket->mDrawLenzInSky = 0; } - if (local_90.y > 0.0f && g_env_light.mpSunLenzPacket->mDrawLenzInSky == 0) { + if (sp54.y > 0.0f && g_env_light.mpSunLenzPacket->mDrawLenzInSky == 0) { if (dStage_stagInfo_GetArg0(i_dComIfGp_getStage()->getStagInfo()) != 0) { - f32 dVar3; - if (S_parcent_bak < dVar19) { - dVar3 = dVar19 - S_parcent_bak; + f32 var_f1_3; + if (S_parcent_bak < var_f30) { + var_f1_3 = var_f30 - S_parcent_bak; } else { - dVar3 = S_parcent_bak - dVar19;; + var_f1_3 = S_parcent_bak - var_f30; } - if (dVar3 < 0.3f) { - dKy_set_actcol_ratio(1.0f - dVar19 * sunPacket->field_0x5c); - dKy_set_bgcol_ratio(1.0f - dVar19 * sunPacket->field_0x5c); - dKy_set_fogcol_ratio(1.0f - dVar20 * (dVar19 * sunPacket->field_0x5c)); - dKy_set_vrboxcol_ratio(1.0f - 0.8f * (dVar20 * (dVar19 * sunPacket->field_0x5c))); + + if (var_f1_3 < 0.3f) { + dKy_set_actcol_ratio(1.0f - var_f30 * sun_p->mVisibility); + dKy_set_bgcol_ratio(1.0f - var_f30 * sun_p->mVisibility); + dKy_set_fogcol_ratio(1.0f - temp_f31 * (var_f30 * sun_p->mVisibility)); + dKy_set_vrboxcol_ratio(1.0f - 0.8f * (temp_f31 * (var_f30 * sun_p->mVisibility))); } - S_parcent_bak = dVar19; + S_parcent_bak = var_f30; } } if (g_env_light.mDaytime < 255.0f && g_env_light.mColpatWeather == 0) { - cLib_addCalc(&sunPacket->field_0x6c, 1.0f, 0.1f, 0.01f, 0.0001f); + cLib_addCalc(&sun_p->field_0x6c, 1.0f, 0.1f, 0.01f, 0.0001f); } else { - cLib_addCalc(&sunPacket->field_0x6c, 0.0f, 0.5f, 0.1f, 0.001f); + cLib_addCalc(&sun_p->field_0x6c, 0.0f, 0.5f, 0.1f, 0.001f); } if (g_env_light.mDaytime < 180.0f) { - f32 fVar7; + f32 var_f1_4; if (g_env_light.mDaytime < 90.0f) { - fVar7 = 0.0f; + var_f1_4 = 0.0f; } else if (g_env_light.mDaytime < 105.0f) { - fVar7 = dKy_get_parcent(105.0f, 90.0f, g_env_light.mDaytime); + var_f1_4 = dKy_get_parcent(105.0f, 90.0f, g_env_light.mDaytime); } else { - fVar7 = 1.0f; + var_f1_4 = 1.0f; } - sunPacket->mColor.r = (f32)sun_color[0].r + fVar7 * ((f32)sun_color[1].r - (f32)sun_color[0].r); - sunPacket->mColor.g = (f32)sun_color[0].g + fVar7 * ((f32)sun_color[1].g - (f32)sun_color[0].g); - sunPacket->mColor.b = (f32)sun_color[0].b + fVar7 * ((f32)sun_color[1].b - (f32)sun_color[0].b); + sun_p->mColor.r = + (f32)sun_color[0].r + var_f1_4 * ((f32)sun_color[1].r - (f32)sun_color[0].r); + sun_p->mColor.g = + (f32)sun_color[0].g + var_f1_4 * ((f32)sun_color[1].g - (f32)sun_color[0].g); + sun_p->mColor.b = + (f32)sun_color[0].b + var_f1_4 * ((f32)sun_color[1].b - (f32)sun_color[0].b); - sunPacket->field_0x74.r = (f32)sun_color2[0].r + fVar7 * ((f32)sun_color2[1].r - (f32)sun_color2[0].r); - sunPacket->field_0x74.g = (f32)sun_color2[0].g + fVar7 * ((f32)sun_color2[1].g - (f32)sun_color2[0].g); - sunPacket->field_0x74.b = (f32)sun_color2[0].b + fVar7 * ((f32)sun_color2[1].b - (f32)sun_color2[0].b); + sun_p->field_0x74.r = + (f32)sun_color2[0].r + var_f1_4 * ((f32)sun_color2[1].r - (f32)sun_color2[0].r); + sun_p->field_0x74.g = + (f32)sun_color2[0].g + var_f1_4 * ((f32)sun_color2[1].g - (f32)sun_color2[0].g); + sun_p->field_0x74.b = + (f32)sun_color2[0].b + var_f1_4 * ((f32)sun_color2[1].b - (f32)sun_color2[0].b); } else { - f32 fVar7; + f32 var_f1_5; if (g_env_light.mDaytime < 247.5f) { - fVar7 = 1.0f; + var_f1_5 = 1.0f; } else if (g_env_light.mDaytime < 270.0f) { - fVar7 = 1.0f - dKy_get_parcent(270.0f, 247.5f, g_env_light.mDaytime); + var_f1_5 = 1.0f - dKy_get_parcent(270.0f, 247.5f, g_env_light.mDaytime); } else { - fVar7 = 0.0f; + var_f1_5 = 0.0f; } - sunPacket->mColor.r = (f32)sun_color[2].r + fVar7 * ((f32)sun_color[1].r - (f32)sun_color[2].r); - sunPacket->mColor.g = (f32)sun_color[2].g + fVar7 * ((f32)sun_color[1].g - (f32)sun_color[2].g); - sunPacket->mColor.b = (f32)sun_color[2].b + fVar7 * ((f32)sun_color[1].b - (f32)sun_color[2].b); + sun_p->mColor.r = + (f32)sun_color[2].r + var_f1_5 * ((f32)sun_color[1].r - (f32)sun_color[2].r); + sun_p->mColor.g = + (f32)sun_color[2].g + var_f1_5 * ((f32)sun_color[1].g - (f32)sun_color[2].g); + sun_p->mColor.b = + (f32)sun_color[2].b + var_f1_5 * ((f32)sun_color[1].b - (f32)sun_color[2].b); - sunPacket->field_0x74.r = (f32)sun_color2[2].r + fVar7 * ((f32)sun_color2[1].r - (f32)sun_color2[2].r); - sunPacket->field_0x74.g = (f32)sun_color2[2].g + fVar7 * ((f32)sun_color2[1].g - (f32)sun_color2[2].g); - sunPacket->field_0x74.b = (f32)sun_color2[2].b + fVar7 * ((f32)sun_color2[1].b - (f32)sun_color2[2].b); + sun_p->field_0x74.r = + (f32)sun_color2[2].r + var_f1_5 * ((f32)sun_color2[1].r - (f32)sun_color2[2].r); + sun_p->field_0x74.g = + (f32)sun_color2[2].g + var_f1_5 * ((f32)sun_color2[1].g - (f32)sun_color2[2].g); + sun_p->field_0x74.b = + (f32)sun_color2[2].b + var_f1_5 * ((f32)sun_color2[1].b - (f32)sun_color2[2].b); } if (dKyr_moon_arrival_check()) { - f32 fVar6 = (sunPacket->mPos[0].y - pCamera->mLookat.mEye.y) / -8000.0f; - fVar6 *= fVar6; - fVar6 *= 6.0f; + f32 var_f1_6 = (sun_p->mPos[0].y - camera_p2->mLookat.mEye.y) / -8000.0f; + var_f1_6 *= var_f1_6; + var_f1_6 *= 6.0f; - if (fVar6 > 1.0f) { - fVar6 = 1.0f; + if (var_f1_6 > 1.0f) { + var_f1_6 = 1.0f; } - cLib_addCalc(&sunPacket->field_0x68, fVar6, 0.2f, 0.01f, 0.001f); + cLib_addCalc(&sun_p->field_0x68, var_f1_6, 0.2f, 0.01f, 0.001f); } else { - cLib_addCalc(&sunPacket->field_0x68, 0.0f, 0.2f, 0.01f, 0.001f); + cLib_addCalc(&sun_p->field_0x68, 0.0f, 0.2f, 0.01f, 0.001f); } - if (g_env_light.mCameraInWater == 0 && g_env_light.mDaytime > 255.0f && sunPacket->field_0x60 >= 0.2f) { - cXyz local_d8; - dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &local_90); - local_d8.x = pCamera->mLookat.mEye.x + 30160.0f * local_90.x; - local_d8.y = pCamera->mLookat.mEye.y + 30160.0f * local_90.y; - local_d8.z = pCamera->mLookat.mEye.z + 30160.0f * local_90.z; - local_d8.y -= 21678.0f; - sunPacket->field_0x58 = dComIfGp_particle_set(sunPacket->field_0x58, 0x11c, &local_d8, 0, 0); + if (g_env_light.mCameraInWater == 0 && g_env_light.mDaytime > 255.0f && + sun_p->mSunAlpha >= 0.2f) + { + cXyz sp24; + dKyr_get_vectle_calc(&camera_p2->mLookat.mEye, &g_env_light.mSunPos2, &sp54); + sp24.x = camera_p2->mLookat.mEye.x + 30160.0f * sp54.x; + sp24.y = camera_p2->mLookat.mEye.y + 30160.0f * sp54.y; + sp24.z = camera_p2->mLookat.mEye.z + 30160.0f * sp54.z; + sp24.y -= 21678.0f; + sun_p->field_0x58 = dComIfGp_particle_set(sun_p->field_0x58, 0x11C, &sp24, 0, 0); } } #else @@ -818,18 +834,18 @@ SECTION_DEAD static char const* const stringBase_8037A588 = "Always"; // Matches with literals #ifdef NONMATCHING void dKyr_rain_init() { - camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; + camera_class* camera_p = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; g_env_light.mpRainPacket->mpTex = (u8*)dComIfG_getObjectRes("Always", 0x4a); g_env_light.mpRainPacket->mpTex2 = (u8*)dComIfG_getObjectRes("Always", 0x57); - g_env_light.mpRainPacket->mCamEyePos = pCamera->mLookat.mEye; - g_env_light.mpRainPacket->mCamCenterPos = pCamera->mLookat.mCenter; + g_env_light.mpRainPacket->mCamEyePos = camera_p->mLookat.mEye; + g_env_light.mpRainPacket->mCamCenterPos = camera_p->mLookat.mCenter; g_env_light.mpRainPacket->mCenterDeltaMul = 0.0f; g_env_light.mpRainPacket->field_0x3700 = 0.0f; g_env_light.mpRainPacket->mSibukiAlpha = 0.0f; g_env_light.mpRainPacket->mOverheadFade = 0.0f; g_env_light.mpRainPacket->mFwdFade1 = 0.0f; - g_env_light.mpRainPacket->mFwdFade2 = 0.0f; - g_env_light.mpRainPacket->mStatus = 0.0f; + g_env_light.mpRainPacket->mFwdFade2 = 0.0f; + g_env_light.mpRainPacket->mStatus = 0.0f; g_env_light.mpRainPacket->mCenterDelta.x = 0.0f; g_env_light.mpRainPacket->mCenterDelta.y = 0.0f; g_env_light.mpRainPacket->mCenterDelta.z = 0.0f; @@ -886,7 +902,8 @@ static bool overhead_bg_chk() { chk = true; // Outside East Castle Town if (!strcmp(dComIfGp_getStartStageName(), "F_SP122") && - dStage_roomControl_c::getStayNo() == 17) { + dStage_roomControl_c::getStayNo() == 17) + { return false; } } @@ -903,7 +920,7 @@ static bool overhead_bg_chk() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void overhead_bg_chk() { +static asm BOOL overhead_bg_chk() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/overhead_bg_chk__Fv.s" } @@ -915,21 +932,24 @@ static asm void overhead_bg_chk() { // Matches with literals #ifdef NONMATCHING static int forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { - camera_class* iVar7 = dComIfGp_getCamera(0); - u32 r30 = 0; - dBgS_ObjGndChk_All adStack_88; - dBgS_RoofChk adStack_d8; - cXyz local_e8; - cXyz local_f4; - dKyr_get_vectle_calc(&iVar7->mLookat.mEye, &iVar7->mLookat.mCenter, &local_f4); - local_e8.x = iVar7->mLookat.mEye.x + local_f4.x * param_1; - local_e8.y = iVar7->mLookat.mEye.y + local_f4.y * param_1; - local_e8.z = iVar7->mLookat.mEye.z + local_f4.z * param_1; - local_e8.y = 50.0f + iVar7->mLookat.mEye.y; - *param_0 = local_e8; - adStack_d8.i_SetPos(local_e8); - if (1000000000.0f != dComIfG_Bgsp().RoofChk(&adStack_d8)) { - r30 = 1; + camera_class* camera_p = dComIfGp_getCamera(0); + u32 chk = 0; + + dBgS_ObjGndChk_All gncChk; + dBgS_RoofChk roofChk; + + cXyz chk_pos; + cXyz vectle; + dKyr_get_vectle_calc(&camera_p->mLookat.mEye, &camera_p->mLookat.mCenter, &vectle); + chk_pos.x = camera_p->mLookat.mEye.x + vectle.x * param_1; + chk_pos.y = camera_p->mLookat.mEye.y + vectle.y * param_1; + chk_pos.z = camera_p->mLookat.mEye.z + vectle.z * param_1; + chk_pos.y = 50.0f + camera_p->mLookat.mEye.y; + *param_0 = chk_pos; + + roofChk.i_SetPos(chk_pos); + if (1000000000.0f != dComIfG_Bgsp().RoofChk(&roofChk)) { + chk = 1; if (strcmp(dComIfGp_getStartStageName(), "F_SP122") == 0) { if (dStage_roomControl_c::getStayNo() == 17) { return 0; @@ -937,19 +957,19 @@ static int forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { } } - local_e8.y += 10000.0f; - adStack_88.SetPos(&local_e8); + chk_pos.y += 10000.0f; + gncChk.SetPos(&chk_pos); - if (dComIfG_Bgsp().GroundCross(&adStack_88) > 50.0f + iVar7->mLookat.mEye.y) { - r30 = 1; + if (dComIfG_Bgsp().GroundCross(&gncChk) > 50.0f + camera_p->mLookat.mEye.y) { + chk = 1; } - return r30; + return chk; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { +static asm BOOL forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/forward_overhead_bg_chk__FP4cXyzf.s" } @@ -1085,6 +1105,364 @@ SECTION_SDATA2 static f32 lit_5133 = -11430.0f; SECTION_SDATA2 static f32 lit_5134 = 36900.0f; /* 8005D18C-8005E8B0 057ACC 1724+00 0/0 1/1 0/0 .text dKyr_rain_move__Fv */ +// reg alloc, equivalent? +#ifdef NONMATCHING +void dKyr_rain_move() { + camera_class* camera_p; + + dKankyo_rain_Packet* rain_p = g_env_light.mpRainPacket; + camera_p = (camera_class*)dComIfGp_getCamera(0); + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + + cXyz spE0; + cXyz spD4; + cXyz spC8 = dKyw_get_wind_vecpow(); + cXyz spBC; + cXyz spB0; + + BOOL var_r20; + BOOL var_r21; + BOOL var_r22; + BOOL var_r23; + BOOL var_r24; + + var_r21 = 0; + var_r20 = 0; + + dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()); + + cXyz spA4; + cXyz sp98; + cXyz sp8C; + + spA4.x = 0.0f; + spA4.y = -2.5f; + spA4.z = 0.0f; + + if (rain_p->mRainCount <= g_env_light.mRainCount) { + rain_p->mRainCount = g_env_light.mRainCount; + } + + if (rain_p->mRainCount != 0) { + dKyr_get_vectle_calc(&camera_p->mLookat.mCenter, &rain_p->mCamCenterPos, &spB0); + + f32 var_f1 = rain_p->mCamEyePos.abs(camera_p->mLookat.mEye); + + f32 var_f30; + if (var_f1 > 10.0f) { + var_f30 = (var_f1 - 10.0f) / 50.0f; + if (var_f30 > 1.0f) { + var_f30 = 1.0f; + } + } else { + var_f30 = 0.0f; + } + + rain_p->mCamEyePos.x = camera_p->mLookat.mEye.x; + rain_p->mCamEyePos.z = camera_p->mLookat.mEye.z; + + f32 var_f1_2 = rain_p->mCamEyePos.abs(camera_p->mLookat.mEye); + f32 var_f2 = var_f1_2 / 20.0f; + if (var_f2 > 1.0f) { + var_f2 = 1.0f; + } + + spA4.y -= var_f2 * 15.0f; + rain_p->mCamEyePos = camera_p->mLookat.mEye; + + f32 var_f1_3 = rain_p->mCamCenterPos.abs(camera_p->mLookat.mCenter); + + f32 var_f1_4; + if (var_f1_3 > 10.0f) { + var_f1_4 = (var_f1_3 - 10.0f) / 50.0f; + if (var_f1_4 > 1.0f) { + var_f1_4 = 1.0f; + } + } else { + var_f1_4 = 0.0f; + } + + cLib_addCalc(&rain_p->mCenterDeltaMul, var_f30 * var_f1_4, 0.2f, 0.1f, 0.01f); + if (rain_p->mCenterDeltaMul > 0.3f) { + rain_p->mCenterDeltaMul = 0.3f; + } + + cLib_addCalc(&rain_p->mCenterDelta.x, spB0.x, 0.2f, 0.1f, 0.01f); + cLib_addCalc(&rain_p->mCenterDelta.y, spB0.y, 0.2f, 0.1f, 0.01f); + cLib_addCalc(&rain_p->mCenterDelta.z, spB0.z, 0.2f, 0.1f, 0.01f); + rain_p->mCamCenterPos = camera_p->mLookat.mCenter; + + dKy_set_eyevect_calc2(camera_p, &spE0, 700.0f, 600.0f); + spD4.z = 0.0f; + spD4.y = 0.0f; + spD4.x = 0.0f; + + dKyw_get_wind_vec(); + dKyw_get_wind_pow(); + + rain_p->field_0x36cc = 0; + rain_p->field_0x36c8 = 0; + rain_p->mStatus = 0; + + var_r22 = 0; + var_r23 = 0; + var_r24 = 0; + f32 var_f29; + + if (strcmp(dComIfGp_getStartStageName(), "R_SP30") == 0) { + if (dComIfGp_roomControl_getStayNo() == 0 || dComIfGp_roomControl_getStayNo() == 4) { + var_r20 = 1; + } + } else if (strcmp(dComIfGp_getStartStageName(), "R_SP107") == 0 && + dComIfGp_roomControl_getStayNo() == 1) + { + var_r20 = 2; + } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { + var_r20 = 3; + } + + if (var_r20 == 0) { + var_r24 = overhead_bg_chk(); + var_r23 = forward_overhead_bg_chk(&sp98, 700.0f); + var_r22 = forward_overhead_bg_chk(&sp8C, 1400.0f); + + if (var_r24) { + rain_p->mStatus |= 1; + } else if (var_r23) { + rain_p->mStatus |= 2; + } + } else { + var_r21 = 1; + rain_p->mStatus |= 1; + var_f29 = 1200.0f; + } + + if (var_r24) { + cLib_addCalc(&rain_p->mOverheadFade, 1.0f, 0.1f, 0.1f, 0.001f); + } else { + cLib_addCalc(&rain_p->mOverheadFade, 0.0f, 0.5f, 0.2f, 0.01f); + } + + if (var_r23) { + cLib_addCalc(&rain_p->mFwdFade1, 1.0f, 0.1f, 0.1f, 0.001f); + } else { + cLib_addCalc(&rain_p->mFwdFade1, 0.0f, 0.5f, 0.2f, 0.01f); + } + + if (var_r22) { + cLib_addCalc(&rain_p->mFwdFade2, 1.0f, 0.1f, 0.1f, 0.001f); + } else { + cLib_addCalc(&rain_p->mFwdFade2, 0.0f, 0.5f, 0.2f, 0.01f); + } + + f32 temp_f30 = 1.0f; + for (int i = rain_p->mRainCount - 1; i >= 0; i--) { + rain_p->mRainEff[i].mBasePos.y = spE0.y; + RAIN_EFF* effect_p = &rain_p->mRainEff[i]; + + switch (rain_p->mRainEff[i].mStatus) { + case 0: + effect_p->field_0x24 = -(cM_rndF(10.0f) + 35.5f); + effect_p->mTimer = 0; + effect_p->mBasePos = spE0; + effect_p->mPosition.x = cM_rndFX(800.0f); + effect_p->mPosition.y = cM_rndF(600.0f); + effect_p->mPosition.z = cM_rndFX(800.0f); + effect_p->mAlpha = 1.0f; + effect_p->field_0x1c = cM_rndF(360.0f); + effect_p->field_0x20 = cM_rndF(360.0f); + + rain_bg_chk(rain_p, i); + effect_p->mStatus++; + break; + case 1: + case 2: + case 3: + f32 target = cM_rndFX(0.1f); + f32* temp_r27 = &effect_p->field_0x24; + target = effect_p->field_0x24 - target; + + cLib_addCalc(temp_r27, target, 0.5f, 0.1f, 0.01f); + + effect_p->mPosition.x += + 20.0f * + ((spC8.x + (10.0f * (rain_p->mCenterDelta.x * rain_p->mCenterDeltaMul))) + + (spA4.x + (0.08f * (f32)(i & 7)))); + + effect_p->mPosition.y += + ((f32)(i & 7) * -2.0f) + + (20.0f * + (spA4.y + + (spC8.y + ((rain_p->mCenterDelta.y * rain_p->mCenterDeltaMul) * 10.0f)))); + + effect_p->mPosition.z += + 20.0f * + ((spC8.z + (10.0f * (rain_p->mCenterDelta.z * rain_p->mCenterDeltaMul))) + + (spA4.z + (0.08f * (f32)(i & 3)))); + + spBC.x = effect_p->mBasePos.x + effect_p->mPosition.x; + spBC.y = spE0.y; + spBC.z = effect_p->mBasePos.z + effect_p->mPosition.z; + + f32 var_f1_5 = spBC.abs(spE0); + + if (effect_p->mTimer == 0) { + if (var_f1_5 > 800.0f) { + effect_p->mTimer = 10; + *temp_r27 = -(cM_rndF(10.0f) + 35.5f); + effect_p->mBasePos = spE0; + + f32 var_f1_6 = spBC.abs(spE0); + if (var_f1_6 > 850.0f) { + effect_p->mPosition.x = cM_rndFX(800.0f); + effect_p->mPosition.y = cM_rndFX(800.0f); + effect_p->mPosition.z = cM_rndFX(800.0f); + } else { + f32 temp_f31 = cM_rndFX(40.0f); + get_vectle_calc(&spBC, &spE0, &spB0); + + effect_p->mPosition.x = spB0.x * (temp_f31 + 800.0f); + effect_p->mPosition.y = spB0.y * (temp_f31 + 800.0f); + effect_p->mPosition.z = spB0.z * (temp_f31 + 800.0f); + } + + effect_p->mStatus = 1; + rain_bg_chk(rain_p, i); + } + + spBC.y = effect_p->mBasePos.y + effect_p->mPosition.y; + if (spBC.y < effect_p->field_0x30 + 20.0f) { + effect_p->mBasePos = spE0; + effect_p->mPosition.x = cM_rndFX(800.0f); + effect_p->mPosition.y = 200.0f; + effect_p->mPosition.z = cM_rndFX(800.0f); + rain_bg_chk(rain_p, i); + effect_p->mTimer = 10; + } + } else { + effect_p->mTimer--; + } + break; + } + + spBC.x = effect_p->mBasePos.x + effect_p->mPosition.x; + spBC.y = effect_p->mBasePos.y + effect_p->mPosition.y; + spBC.z = effect_p->mBasePos.z + effect_p->mPosition.z; + + if (i > g_env_light.mRainCount - 1) { + if (i == rain_p->mRainCount - 1) { + rain_p->mRainCount--; + } + } + + f32 var_f31 = 1.0f; + if (var_r24 || rain_p->mOverheadFade < 1.0f) { + cXyz sp80; + sp80 = spBC; + sp80.y = camera_p->mLookat.mEye.y; + + if (camera_p->mLookat.mEye.abs(sp80) < 800.0f) { + var_f31 *= rain_p->mOverheadFade * 1.0f; + } + } + + if (var_r23 || rain_p->mFwdFade1 < 1.0f) { + cXyz sp74; + sp74 = spBC; + sp74.y = sp98.y; + + if (sp98.abs(sp74) < 550.0f) { + var_f31 *= rain_p->mFwdFade1; + } + } + + if (var_r22 || rain_p->mFwdFade2 < 1.0f) { + cXyz sp68; + sp68 = spBC; + sp68.y = sp8C.y; + + if (sp8C.abs(sp68) < 550.0f) { + var_f31 *= rain_p->mFwdFade2; + } + } + + if (var_r21) { + cXyz sp5C; + if (strcmp(dComIfGp_getStartStageName(), "R_SP30") == 0) { + if (dComIfGp_roomControl_getStayNo() == 0) { + if (spBC.x > -2680.0f && spBC.z < 2200.0f) { + var_f31 = 0.0f; + } + } else if (dComIfGp_roomControl_getStayNo() == 4 && spBC.z > 1600.0f) { + var_f31 = 0.0f; + } + } else if (var_r20 == 2) { + cXyz sp50; + sp50.x = 27453.0f; + sp50.y = spBC.y; + sp50.z = 8528.0f; + + if (spBC.y < 1300.0f || player_p->current.pos.y < 1100.0f) { + if (spBC.abs(sp50) > 80.0f) { + var_f31 = 0.0f; + } + } else { + if (spBC.abs(sp50) > 500.0f) { + var_f31 = 0.0f; + } + } + } else if (var_r20 == 3) { + cXyz sp44; + sp44.x = -228.0f; + sp44.y = spBC.y; + sp44.z = 795.0f; + + if (spBC.abs(sp44) < 1500.0f) { + var_f31 = 0.0f; + } + + if (camera_p->mLookat.mEye.y < 0.0f) { + var_f31 = 0.0f; + } + } else { + sp5C = spBC; + sp5C.y = 0.0f; + + if (sp5C.abs() < var_f29) { + var_f31 = 0.0f; + } + } + } else if (strcmp(dComIfGp_getStartStageName(), "F_SP113") == 0 && + dComIfGp_roomControl_getStayNo() == 1) + { + if (spBC.z < 5100.0f || (spBC.x < -3250.0f && spBC.y < -50.0f) || + (spBC.x < -2700.0f && spBC.z > 15750.0f)) + { + var_f31 = 0.0f; + rain_p->mStatus |= 1; + } + } else if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0 && + dComIfGp_roomControl_getStayNo() == 9) + { + if (spBC.x < -3680.0f && spBC.z > -11975.0f && spBC.z < -10530.0f) { + var_f31 = 0.0f; + rain_p->mStatus |= 1; + } else if (spBC.x > 3350.0f && spBC.z > -13027.0f && spBC.z < -11430.0f) { + var_f31 = 0.0f; + rain_p->mStatus |= 1; + } + } else if (strcmp(dComIfGp_getStartStageName(), "R_SP107") == 0 && + dComIfGp_roomControl_getStayNo() == 2 && spBC.z > 36900.0f) + { + var_f31 = 0.0f; + rain_p->mStatus |= 1; + } + + effect_p->mAlpha = var_f31 * (temp_f30 + cM_rndFX(0.5f)); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1093,6 +1471,7 @@ asm void dKyr_rain_move() { #include "asm/d/kankyo/d_kankyo_rain/dKyr_rain_move__Fv.s" } #pragma pop +#endif /* 8005E8B0-8005E8F8 0591F0 0048+00 1/1 0/0 0/0 .text d_krain_cut_turn_check__Fv */ static bool d_krain_cut_turn_check() { @@ -1211,6 +1590,357 @@ SECTION_SDATA2 static f32 lit_5747 = 825.0f; SECTION_SDATA2 static f32 lit_5748 = 2000.0f; /* 8005E8F8-8005FBDC 059238 12E4+00 0/0 1/1 0/0 .text dKyr_housi_move__Fv */ +// matches with literals +#ifdef NONMATCHING +void dKyr_housi_move() { + dKankyo_housi_Packet* housi_p = g_env_light.mpHousiPacket; + HOUSI_EFF* effect_p; + camera_class* camera_p = (camera_class*)dComIfGp_getCamera(0); + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + + cXyz sp84; + cXyz sp78 = dKyw_get_wind_vecpow(); + cXyz sp6C; + cXyz sp60; + + dBgS_GndChk sp138; + bool var_r27 = 0; + f32 var_f31 = 1.0f; + + dBgS_CamGndChk_Wtr spE4; + f32 var_f30 = -100000000.0f; + bool var_r24 = 0; + + cXyz sp54; + + if (strcmp(dComIfGp_getStartStageName(), "D_MN08") == 0) { + var_r24 = 1; + } + + if (g_env_light.field_0xea9 == 2) { + sp54 = camera_p->mLookat.mEye; + sp54.y += 100000.0f; + + spE4.SetPos(&sp54); + var_f30 = dComIfG_Bgsp().GroundCross(&spE4); + } + + if (dKy_darkworld_check() == true || var_r24 == 1) { + sp78.x = 0.0f; + sp78.y = 2.8f; + sp78.z = 0.0f; + } + + if (g_env_light.field_0xea9 == 1) { + sp78.x = 0.0f; + sp78.y = -0.55f; + sp78.z = 0.0f; + } + + if (g_env_light.mHousiCount != 0 || + (g_env_light.mHousiCount == 0 && housi_p->field_0x5de8 <= 0.0f)) + { + housi_p->field_0x5dec = g_env_light.mHousiCount; + } + + if (g_env_light.mHousiCount != 0) { + cLib_addCalc(&housi_p->field_0x5de8, 1.0f, 0.2f, 0.05f, 0.01f); + } else { + cLib_addCalc(&housi_p->field_0x5de8, 0.0f, 0.2f, 0.05f, 0.01f); + } + + if (housi_p->field_0x5dec == 0) { + return; + } + + dKy_set_eyevect_calc2(camera_p, &sp84, 800.0f, 800.0f); + + if (sp84.abs(housi_p->field_0x10) > 500.0f) { + var_r27 = 1; + } + + housi_p->field_0x10 = sp84; + dKyw_get_wind_pow(); + + if (g_env_light.field_0xea9 == 1) { + var_f31 = 0.0f; + + if (g_env_light.mCameraInWater) { + dBgS_CamGndChk_Wtr sp90; + + cXyz sp48; + camera_class* cam_p = dComIfGp_getCamera(0); + sp48 = cam_p->mLookat.mEye; + sp48.y += 100000.0f; + + sp90.SetPos(&sp48); + f32 gnd_cross = dComIfG_Bgsp().GroundCross(&sp90); + if (gnd_cross > cam_p->mLookat.mEye.y) { + var_f31 = (gnd_cross - cam_p->mLookat.mEye.y) / 700.0f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + } + } + } + + for (int i = housi_p->field_0x5dec - 1; i >= 0; i--) { + f32 var_f26 = 0.4f * housi_p->field_0x5de8; + effect_p = &housi_p->mHousiEff[i]; + + switch (housi_p->mHousiEff[i].mStatus) { + case 0: + if (g_env_light.field_0xea9 == 1) { + effect_p->field_0x34 = cM_rndF(0.5f) + 0.1f; + } else { + effect_p->field_0x34 = cM_rndF(1.5f) + 0.2f; + } + + effect_p->field_0x3c = 0; + effect_p->field_0x4c = cM_rndFX(65535.0f); + effect_p->mBasePos.x = sp84.x; + effect_p->mBasePos.y = sp84.y; + effect_p->mBasePos.z = sp84.z; + effect_p->mPosition.x = cM_rndFX(1000.0f); + effect_p->mPosition.y = cM_rndFX(1000.0f); + effect_p->mPosition.z = cM_rndFX(1000.0f); + effect_p->mAlpha = 0.0f; + effect_p->field_0x48 = 0.0f; + effect_p->mScale.x = cM_rndF(360.0f); + effect_p->mScale.y = cM_rndF(360.0f); + effect_p->mScale.z = cM_rndF(360.0f); + effect_p->mSpeed.x = 0.0f; + effect_p->mSpeed.y = 0.0f; + effect_p->mSpeed.z = 0.0f; + + if (effect_p->mBasePos.y + effect_p->mPosition.y < -100149.9f) { + effect_p->mPosition.y = (-99999.9f - effect_p->mBasePos.y) + 10.0f; + } + + effect_p->field_0x38 = 0.0f; + effect_p->field_0x44 = 0.0f; + effect_p->mStatus++; + break; + case 1: + case 2: + case 3: + case 4: + f32 var_f24 = 2.5f; + + if (effect_p->mStatus != 4) { + f32 var_f23 = effect_p->field_0x34; + if (effect_p->mStatus == 2) { + var_f23 *= 0.25f; + } + + f32 temp_f0_5 = cM_fsin(effect_p->mScale.x); + if (g_env_light.field_0xea9 == 2) { + var_f24 = 5.0f; + } + + if (effect_p->mStatus != 3) { + effect_p->mPosition.y += var_f23 * (sp78.y * var_f24); + effect_p->mPosition.x += var_f23 * (sp78.x * var_f24); + effect_p->mPosition.y -= var_f23 * 0.6f; + + if (g_env_light.field_0xea9 == 2) { + if (g_env_light.mPondSeason == 3) { + effect_p->mPosition.y -= var_f23 * 3.0f; + } else { + effect_p->mPosition.y -= var_f23 * 1.5f; + } + } + + effect_p->mPosition.z += var_f23 * (sp78.z * var_f24); + } else { + var_f23 *= 4.5f; + + effect_p->mPosition.x += var_f23 * (sp78.x * var_f24); + effect_p->mPosition.y += (var_f23 * (sp78.y * var_f24)) * 0.75f; + effect_p->mPosition.y += var_f23 * 0.3f; + effect_p->mPosition.z += var_f23 * (sp78.z * var_f24); + } + + effect_p->mPosition.x += temp_f0_5 * var_f23; + effect_p->mPosition.y += var_f23 * 0.5f * cM_fsin(effect_p->mScale.y); + effect_p->mPosition.z += cM_fsin(effect_p->mScale.z) * var_f23; + } else if (d_krain_cut_turn_check()) { + effect_p->mStatus = 3; + } + + effect_p->mScale.x += 0.3f; + effect_p->mScale.y += 0.2f; + effect_p->mScale.z += 0.1f; + + sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; + sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; + sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; + + if (g_env_light.field_0xea9 == 2) { + cXyz sp3C(sp6C); + + if (sp6C.y <= var_f30) { + effect_p->mStatus = 2; + } + + if (effect_p->mStatus == 2) { + effect_p->mPosition.y = var_f30 - effect_p->mBasePos.y; + } else if (effect_p->mStatus != 3 && effect_p->mStatus != 4) { + sp3C.y = player_p->current.pos.y; + + if (sp3C.abs(player_p->current.pos) < 300.0f) { + if (sp3C.z > 5600.0f && player_p->current.pos.y < 130.0f) { + if (sp6C.y < player_p->current.pos.y + 2.0f) { + effect_p->mPosition.y = + (player_p->current.pos.y + 2.0f) - effect_p->mBasePos.y; + effect_p->mStatus = 4; + } + } else { + effect_p->mStatus = 3; + } + } + } else { + if (effect_p->mStatus == 4) { + effect_p->mPosition.y = + (player_p->current.pos.y + 2.0f) - effect_p->mBasePos.y; + } + + if (sp3C.abs(player_p->current.pos) > 400.0f) { + effect_p->mStatus = 1; + } + } + } + + sp60 = dKyw_pntwind_get_vecpow(&sp6C); + + if (effect_p->mSpeed.x < 30.0f) { + effect_p->mSpeed.x += sp60.x * 9.0f; + } + + if (effect_p->mSpeed.y < 30.0f) { + effect_p->mSpeed.y += sp60.y * 9.0f; + } + + if (effect_p->mSpeed.z < 30.0f) { + effect_p->mSpeed.z += sp60.z * 9.0f; + } + + cLib_addCalc(&effect_p->mSpeed.x, 0.0f, 0.2f, 0.1f, 0.00001f); + cLib_addCalc(&effect_p->mSpeed.y, 0.0f, 0.2f, 0.1f, 0.00001f); + cLib_addCalc(&effect_p->mSpeed.z, 0.0f, 0.2f, 0.1f, 0.00001f); + + effect_p->mPosition.x += effect_p->mSpeed.x; + effect_p->mPosition.y += effect_p->mSpeed.y; + effect_p->mPosition.z += effect_p->mSpeed.z; + + sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; + sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; + sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; + + f32 var_f1_4 = sp6C.abs(sp84); + + if (effect_p->field_0x3c == 0) { + if (var_f1_4 > 1000.0f || sp6C.y < -99979.9f) { + effect_p->field_0x3c = 10; + effect_p->mBasePos = sp84; + + if (sp6C.abs(sp84) > 1050.0f) { + effect_p->mPosition.x = cM_rndFX(1000.0f); + effect_p->mPosition.y = cM_rndFX(1000.0f); + effect_p->mPosition.z = cM_rndFX(1000.0f); + } else { + f32 temp_f23 = cM_rndFX(50.0f); + get_vectle_calc(&sp6C, &sp84, &sp60); + + effect_p->mPosition.x = sp60.x * (temp_f23 + 1000.0f); + effect_p->mPosition.y = sp60.y * (temp_f23 + 1000.0f); + effect_p->mPosition.z = sp60.z * (temp_f23 + 1000.0f); + } + + sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; + sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; + sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; + + if (sp6C.y <= var_f30) { + effect_p->mPosition.y += 1000.0f; + } + + effect_p->mSpeed.x = 0.0f; + effect_p->mSpeed.y = 0.0f; + effect_p->mSpeed.z = 0.0f; + + if (g_env_light.field_0xea9 == 2) { + effect_p->mPosition.y += cM_rndF(3200.0f); + if (sp6C.y > 3200.0f) { + effect_p->mPosition.y = 3200.0f - effect_p->mBasePos.y; + } + + if (g_env_light.mPondSeason == 1) { + if (sp6C.x > 600.0f || sp6C.z > 1600.0f) { + effect_p->mStatus = 1; + } else { + effect_p->mStatus = 2; + } + } else if (sp6C.x > 1700.0f || sp6C.z > 2800.0f) { + effect_p->mStatus = 1; + } else { + effect_p->mStatus = 2; + } + } + } + } else { + effect_p->field_0x3c--; + } + break; + } + + sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; + sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; + sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; + + if (g_env_light.field_0xea9 != 2) { + effect_p->field_0x4c += 600; + if (effect_p->field_0x4c > 30000) { + var_f26 = 0.0f; + } + } else { + var_f26 = 1.0f; + } + + cLib_addCalc(&effect_p->mAlpha, var_f26, 0.5f, 0.02f, 0.00001f); + effect_p->mAlpha *= var_f31; + + if (var_r27 != 0) { + effect_p->mAlpha = 0.0f; + } + + if (dKy_darkworld_check() == 1 || var_r24 == 1) { + f32 var_f1_6 = sp6C.abs(camera_p->mLookat.mEye); + effect_p->field_0x48 = var_f1_6; + + f32 var_f1_7; + if (var_f1_6 >= 800.0f) { + var_f1_7 = (var_f1_6 - 800.0f) / 825.0f; + if (var_f1_7 > 1.0f) { + var_f1_7 = 1.0f; + } + } else { + var_f1_7 = 0.0f; + } + + effect_p->mAlpha = var_f1_7; + } + + f32 var_f1_8 = sp6C.abs(camera_p->mLookat.mEye); + f32 temp_f25 = var_f1_8 / 2000.0f; + effect_p->field_0x48 = 1.0f - (temp_f25 * temp_f25); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1219,12 +1949,13 @@ asm void dKyr_housi_move() { #include "asm/d/kankyo/d_kankyo_rain/dKyr_housi_move__Fv.s" } #pragma pop +#endif /* 8005FBDC-8005FD48 05A51C 016C+00 0/0 1/1 0/0 .text dKyr_snow_init__Fv */ // Matches with literals #ifdef NONMATCHING void dKyr_snow_init() { - camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; + camera_class* camera_p = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; g_env_light.mpSnowPacket = new (32) dKankyo_snow_Packet(); if (g_env_light.mpSnowPacket == NULL) { @@ -1238,7 +1969,7 @@ void dKyr_snow_init() { } g_env_light.mpSnowPacket->field_0x6d88 = 0; - g_env_light.mpSnowPacket->field_0x6d74 = pCamera->mLookat.mEye; + g_env_light.mpSnowPacket->field_0x6d74 = camera_p->mLookat.mEye; g_env_light.mpSnowPacket->field_0x6d80 = 0.0f; g_env_light.mpSnowPacket->field_0x6d84 = 0.0f; g_env_light.mpSnowPacket->field_0x6d8a = 0; @@ -1326,7 +2057,7 @@ asm void dKyr_snow_move() { // Matches without literals #ifdef NONMATCHING void dKyr_star_init() { - camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; + camera_class* camera_p = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; g_env_light.mpStarPacket = new (32) dKankyo_star_Packet(); if (g_env_light.mpStarPacket == NULL) { @@ -1526,7 +2257,7 @@ SECTION_SDATA2 static f32 lit_7213 = 2.3f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dKyr_draw_rev_moon(f32 (*param_0)[4], u8** param_1) { +static asm void dKyr_draw_rev_moon(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_draw_rev_moon__FPA4_fPPUc.s" } @@ -1575,7 +2306,7 @@ SECTION_SDATA2 static f32 lit_7548 = 2400.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_drawSun(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3) { +asm void dKyr_drawSun(Mtx param_0, cXyz* param_1, _GXColor& param_2, u8** param_3) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc.s" } @@ -1648,7 +2379,7 @@ SECTION_SDATA2 static f32 lit_7894 = 60.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_drawLenzflare(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3) { +asm void dKyr_drawLenzflare(Mtx param_0, cXyz* param_1, _GXColor& param_2, u8** param_3) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawLenzflare__FPA4_fP4cXyzR8_GXColorPPUc.s" } @@ -1709,7 +2440,7 @@ SECTION_SDATA2 static f32 lit_8215 = 480.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_drawRain(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_drawRain(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawRain__FPA4_fPPUc.s" } @@ -1726,7 +2457,7 @@ SECTION_SDATA2 static f32 lit_8361 = 3600.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_drawSibuki(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_drawSibuki(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawSibuki__FPA4_fPPUc.s" } @@ -1785,14 +2516,375 @@ SECTION_SDATA2 static f32 lit_8926 = -16384.0f; SECTION_SDATA2 static f32 lit_8927 = 16384.0f; /* 8006653C-80067488 060E7C 0F4C+00 0/0 1/1 0/0 .text dKyr_drawHousi__FPA4_fPPUc */ +// mostly match, weird double branch thing +#ifdef NONMATCHING +void dKyr_drawHousi(Mtx param_0, u8** param_1) { + dKankyo_housi_Packet* housi_p = g_env_light.mpHousiPacket; + static f32 rot = 0.0f; + + Mtx sp1BC; + Mtx sp18C; + cXyz sp15C[4]; + GXTexObj spDC; + cXyz spD0; + Vec spC4; + Vec spB8; + + bool var_r28 = 0; + if (housi_p->field_0x5dec != 0) { + if (strcmp(dComIfGp_getStartStageName(), "D_MN08") == 0) { + var_r28 = 1; + } + + if (strcmp(dComIfGp_getStartStageName(), "D_MN08") != 0 || + dComIfGp_roomControl_getStayNo() == 0 || dComIfGp_roomControl_getStayNo() == 11) + { + j3dSys.reinitGX(); + f32 var_f25 = 120.0f; + + if (g_env_light.field_0xea9 == 1) { + var_f25 = 140.0f; + } else if (g_env_light.mCameraInWater != 0) { + return; + } + + GXColor sp24; + sp24.r = 0xE5; + sp24.g = 0xFF; + sp24.b = 0xC8; + sp24.a = var_f25; + + GXColor sp20; + sp20.r = 0x43; + sp20.g = 0xD2; + sp20.b = 0xCA; + sp20.a = 0xFF; + + if (dKy_darkworld_check() == 1 || var_r28 == 1) { + sp24.r = 0; + sp24.g = 0; + sp24.b = 0; + sp24.a = var_f25; + sp20.r = 0; + sp20.g = 0; + sp20.b = 0; + sp20.a = 0xFF; + var_f25 = 255.0f; + } else if (g_env_light.field_0xea9 == 1) { + sp24.r = 0xFF; + sp24.g = 0xFF; + sp24.b = 0xFF; + sp20.r = 0; + sp20.g = 0x50; + sp20.b = 0x50; + } else if (g_env_light.field_0xea9 == 2 && + (g_env_light.mPondSeason == 1 || g_env_light.mPondSeason == 3)) + { + GXColor sp1C = {0x32, 0x32, 0x32, 0xFF}; + GXColor sp18 = {0xFF, 0xD7, 0xF0, 0xFF}; + + camera_class* cam_p = dComIfGp_getCamera(0); + if (g_env_light.mPondSeason == 3) { + sp1C.r = 0x78; + sp1C.g = 0x0A; + sp1C.b = 0x14; + sp18.r = 0x14; + sp18.g = 0x3C; + sp18.b = 0x00; + } + + dKy_ParticleColor_get_bg(&cam_p->mLookat.mEye, NULL, &sp20, &sp24, &sp1C, &sp18, + 0.0f); + var_f25 = 255.0f; + } + + if (dComIfGd_getView() != NULL) { + f32 temp_f26 = 1.2f; + f32 temp_f24 = 6.5f; + + // MTXInverse(dComIfGd_getView()->mViewMtxNoTrans, sp1BC); + // wtf is going on here + switch (MTXInverse(dComIfGd_getView()->mViewMtxNoTrans, sp1BC)) { + case 0: + return; + } + + for (int i = 0; i < 1; i++) { + dKyr_set_btitex(&spDC, (ResTIMG*)*param_1); + GXSetNumChans(0); + GXSetTevColor(GX_TEVREG0, sp24); + GXSetTevColor(GX_TEVREG1, sp20); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_C1, GX_CC_C0, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_A0, GX_CA_TEXA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + + if (strcmp(dComIfGp_getStartStageName(), "F_NW01") == 0 || + g_env_light.field_0xea9 == 1) + { + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_ONE, GX_LO_COPY); + } else { + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, + GX_LO_SET); + } + + GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0); + + if (i == 1) { + GXSetZMode(GX_TRUE, GX_GEQUAL, GX_FALSE); + } else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + + GXSetClipMode(GX_CLIP_DISABLE); + GXSetNumIndStages(0); + dKr_cullVtx_Set(); + + rot += 1.2f; + MTXRotRad(sp18C, 'Z', DEG_TO_RAD(rot)); + MTXConcat(sp1BC, sp18C, sp1BC); + + GXLoadPosMtxImm(param_0, GX_PNMTX0); + GXSetCurrentMtx(0); + + for (int j = 0; j < housi_p->field_0x5dec; j++) { + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + + spD0.x = + housi_p->mHousiEff[j].mBasePos.x + housi_p->mHousiEff[j].mPosition.x; + spD0.y = + housi_p->mHousiEff[j].mBasePos.y + housi_p->mHousiEff[j].mPosition.y; + spD0.z = + housi_p->mHousiEff[j].mBasePos.z + housi_p->mHousiEff[j].mPosition.z; + + if (i == 1 && j == 0) { + sp24.r = 0; + sp24.g = 0; + sp24.b = 0; + sp20.r = 0; + sp20.g = 0; + sp20.b = 0; + GXSetTevColor(GX_TEVREG1, sp20); + } + + if (i == 1) { + f32 temp_f4 = 100.0f; + if (!(spD0.y > player_p->current.pos.y + temp_f4)) { + if (!(spD0.y < player_p->current.pos.y - 20.0f)) { + if (!(housi_p->mHousiEff[j].mAlpha <= 0.0f)) { + sp24.a = + housi_p->mHousiEff[j].mAlpha * 40.0f * + (1.0f - ((spD0.y - player_p->current.pos.y) / 100.0f)); + spD0.y = player_p->current.pos.y - 20.0f; + goto block_14; // probably fake match + } + } + } + } else { + sp24.a = housi_p->mHousiEff[j].mAlpha * var_f25; + + block_14: + GXLoadTexObj(&spDC, GX_TEXMAP0); + GXSetTevColor(GX_TEVREG0, sp24); + + f32 var_f27 = housi_p->mHousiEff[j].field_0x48 * 9.0f; + if (g_env_light.field_0xea9 == 1) { + var_f27 = housi_p->mHousiEff[j].field_0x48 * 18.0f; + } + + f32 temp_f28 = + (var_f27 * 0.2f) * cM_fsin(housi_p->mHousiEff[j].mScale.x * 5.0f); + f32 temp_f30 = + (var_f27 * 0.2f) * cM_fcos(housi_p->mHousiEff[j].mScale.y * 6.0f); + + if (dKy_darkworld_check() == 1 || var_r28 == 1) { + cXyz sp7C[] = { + cXyz(-1.0f, -0.5f, 0.0f), + cXyz(-1.0f, 1.5f, 0.0f), + cXyz(1.0f, 1.5f, 0.0f), + cXyz(1.0f, -0.5f, 0.0f), + }; + + for (int k = 0; k < 4; k++) { + cXyz spAC; + cXyz spA0; + + f32 temp_f26_2 = + cM_ssin((f32)j * 123.0f + (f32)(g_Counter.mCounter0 * 600)); + + cXyz* temp_r3 = &sp7C[k]; + spAC.x = temp_r3->x * (8.0f * (1.0f + (temp_f26_2 * 0.3f))); + spAC.y = temp_r3->y * (8.0f * (1.0f + (temp_f26_2 * 0.3f))); + spAC.z = temp_r3->z * (8.0f * (1.0f + (temp_f26_2 * 0.3f))); + + mDoMtx_stack_c::transS(spD0.x, spD0.y, spD0.z); + mDoMtx_stack_c::YrotM(temp_f26_2 * 65536.0f); + mDoMtx_stack_c::multVec(&spAC, &spA0); + sp15C[k] = spA0; + } + } else if (g_env_light.field_0xea9 == 2) { + cXyz sp4C[] = { + cXyz(-1.0f, -0.9f, 0.0f), + cXyz(-1.0f, 1.1f, 0.0f), + cXyz(1.0f, 1.1f, 0.0f), + cXyz(1.0f, -0.9f, 0.0f), + }; + + for (int k = 0; k < 4; k++) { + cXyz sp94; + cXyz sp88; + + f32 var_f24; + if (housi_p->mHousiEff[j].mStatus == 1 || + housi_p->mHousiEff[j].mStatus == 3) + { + var_f24 = + 0.2f + + (housi_p->mHousiEff[j].field_0x34 * + (fabsf(cM_ssin((f32)j * 213.0f + + (f32)(g_Counter.mCounter0 * 330))) * + 0.8f)); + } else { + var_f24 = cM_ssin((f32)j * 123.0f + + (f32)(g_Counter.mCounter0 * 80)); + } + + f32 var_f2; + if (g_env_light.mPondSeason == 3) { + var_f2 = 15.0f; + + if (housi_p->mHousiEff[j].mStatus == 1) { + var_f24 = + housi_p->mHousiEff[j].field_0x34 * + fabsf(cM_ssin((f32)j * 250.0f + + (f32)(g_Counter.mCounter0 * 88))); + } else { + var_f24 = cM_ssin((f32)j * 685.0f + + (f32)(g_Counter.mCounter0 * 20)); + } + } else { + var_f2 = 6.0f; + } + + cXyz* temp_r3_2 = &sp4C[k]; + sp94.x = temp_r3_2->x * (var_f2 * (1.0f + (var_f24 * 0.3f))); + sp94.y = temp_r3_2->y * (var_f2 * (1.0f + (var_f24 * 0.3f))); + sp94.z = temp_r3_2->z * (var_f2 * (1.0f + (var_f24 * 0.3f))); + mDoMtx_stack_c::transS(spD0.x, spD0.y, spD0.z); + + if (housi_p->mHousiEff[j].mStatus == 1 || + housi_p->mHousiEff[j].mStatus == 3) + { + housi_p->mHousiEff[j].field_0x38 += + 483.0f * (0.5f + (var_f24 * 0.5f)); + + housi_p->mHousiEff[j].field_0x44 = + (s16)housi_p->mHousiEff[j].field_0x38; + mDoMtx_stack_c::YrotM(housi_p->mHousiEff[j].field_0x38); + mDoMtx_stack_c::XrotM(housi_p->mHousiEff[j].field_0x38); + mDoMtx_stack_c::ZrotM(housi_p->mHousiEff[j].field_0x38); + } else { + if (housi_p->mHousiEff[j].mStatus == 2) { + if (g_env_light.mPondSeason == 3) { + housi_p->mHousiEff[j].field_0x38 += var_f24 * 30.0f; + } else { + housi_p->mHousiEff[j].field_0x38 += + var_f24 * 100.0f; + } + } + + if (housi_p->mHousiEff[j].field_0x38 > 32765.0f) { + cLib_addCalc(&housi_p->mHousiEff[j].field_0x44, + -16384.0f, 0.1f, 500.0f, 0.0001f); + } else { + cLib_addCalc(&housi_p->mHousiEff[j].field_0x44, + 16384.0f, 0.1f, 500.0f, 0.0001f); + } + + mDoMtx_stack_c::YrotM(housi_p->mHousiEff[j].field_0x38); + mDoMtx_stack_c::XrotM(housi_p->mHousiEff[j].field_0x44); + mDoMtx_stack_c::ZrotM(housi_p->mHousiEff[j].field_0x38); + } + + mDoMtx_stack_c::multVec(&sp94, &sp88); + sp15C[k] = sp88; + } + } else { + spC4.x = var_f27 - temp_f30; + spC4.y = var_f27 - temp_f28; + spC4.z = 0.0f; + MTXMultVec(sp1BC, &spC4, &spB8); + sp15C[0].x = spD0.x + spB8.x; + sp15C[0].y = spD0.y + spB8.y; + sp15C[0].z = spD0.z + spB8.z; + + spC4.x = -var_f27 + temp_f30; + spC4.y = var_f27 - temp_f28; + spC4.z = 0.0f; + MTXMultVec(sp1BC, &spC4, &spB8); + sp15C[1].x = spD0.x + spB8.x; + sp15C[1].y = spD0.y + spB8.y; + sp15C[1].z = spD0.z + spB8.z; + + spC4.x = -var_f27 + temp_f30; + spC4.y = -var_f27 + temp_f28; + spC4.z = 0.0f; + MTXMultVec(sp1BC, &spC4, &spB8); + sp15C[2].x = spD0.x + spB8.x; + sp15C[2].y = spD0.y + spB8.y; + sp15C[2].z = spD0.z + spB8.z; + + spC4.x = var_f27 - temp_f30; + spC4.y = -var_f27 + temp_f28; + spC4.z = 0.0f; + MTXMultVec(sp1BC, &spC4, &spB8); + sp15C[3].x = spD0.x + spB8.x; + sp15C[3].y = spD0.y + spB8.y; + sp15C[3].z = spD0.z + spB8.z; + } + + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + + s16 var_r17 = 0x1FF; + if (dKy_darkworld_check() == 1 || var_r28 == 1) { + var_r17 = 0xFA; + } + + GXPosition3f32(sp15C[0].x, sp15C[0].y, sp15C[0].z); + GXTexCoord2s16(0, 0); + GXPosition3f32(sp15C[1].x, sp15C[1].y, sp15C[1].z); + GXTexCoord2s16(var_r17, 0); + GXPosition3f32(sp15C[2].x, sp15C[2].y, sp15C[2].z); + GXTexCoord2s16(var_r17, var_r17); + GXPosition3f32(sp15C[3].x, sp15C[3].y, sp15C[3].z); + GXTexCoord2s16(0, var_r17); + i_GXEnd(); + } + } + } + + GXSetClipMode(GX_CLIP_ENABLE); + J3DShape::resetVcdVatCache(); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_drawHousi(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_drawHousi(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawHousi__FPA4_fPPUc.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -1912,7 +3004,7 @@ SECTION_SDATA2 static f32 lit_9402 = -52.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_drawSnow(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_drawSnow(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawSnow__FPA4_fPPUc.s" } @@ -2036,7 +3128,7 @@ SECTION_SDATA2 static f32 lit_9837 = 0.004950494971126318f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_drawStar(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_drawStar(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawStar__FPA4_fPPUc.s" } @@ -2068,7 +3160,7 @@ SECTION_SDATA2 static f32 lit_10031 = 0.49f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void drawCloudShadow(f32 (*param_0)[4], u8** param_1) { +asm void drawCloudShadow(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/drawCloudShadow__FPA4_fPPUc.s" } @@ -2127,7 +3219,7 @@ SECTION_SDATA2 static f32 lit_10604 = 558.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void drawVrkumo(f32 (*param_0)[4], _GXColor& param_1, u8** param_2) { +asm void drawVrkumo(Mtx param_0, _GXColor& param_1, u8** param_2) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/drawVrkumo__FPA4_fR8_GXColorPPUc.s" } @@ -2181,14 +3273,10 @@ asm void dKyr_thunder_move() { #pragma pop /* 8006B8DC-8006B8E0 06621C 0004+00 0/0 1/1 0/0 .text dKyr_shstar_init__Fv */ -void dKyr_shstar_init() { - /* empty function */ -} +void dKyr_shstar_init() {} /* 8006B8E0-8006B8E4 066220 0004+00 0/0 1/1 0/0 .text dKyr_shstar_move__Fv */ -void dKyr_shstar_move() { - /* empty function */ -} +void dKyr_shstar_move() {} /* 8006B8E4-8006B924 066224 0040+00 0/0 1/1 0/0 .text dKyr_odour_init__Fv */ #pragma push @@ -2228,7 +3316,7 @@ static u8 data_80450F34[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_odour_draw(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_odour_draw(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_odour_draw__FPA4_fPPUc.s" } @@ -2295,7 +3383,7 @@ SECTION_SDATA2 static f32 lit_11509 = 12.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_mud_draw(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_mud_draw(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_mud_draw__FPA4_fPPUc.s" } @@ -2358,7 +3446,7 @@ SECTION_SDATA2 static f32 lit_11887 = 135.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dKyr_evil_draw2(f32 (*param_0)[4], u8** param_1) { +static asm void dKyr_evil_draw2(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_evil_draw2__FPA4_fPPUc.s" } @@ -2417,7 +3505,7 @@ SECTION_SDATA2 static f32 lit_12260 = 115.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKyr_evil_draw(f32 (*param_0)[4], u8** param_1) { +asm void dKyr_evil_draw(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_evil_draw__FPA4_fPPUc.s" } @@ -2428,5 +3516,3 @@ asm void dKyr_evil_draw(f32 (*param_0)[4], u8** param_1) { cXyz* daPy_py_c::getKandelaarFlamePos() { return NULL; } - -/* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/kankyo/d_kankyo_wether.cpp b/src/d/kankyo/d_kankyo_wether.cpp index de03ac9807..66a4233732 100644 --- a/src/d/kankyo/d_kankyo_wether.cpp +++ b/src/d/kankyo/d_kankyo_wether.cpp @@ -6,6 +6,7 @@ #include "d/kankyo/d_kankyo_wether.h" #include "JSystem/J3DGraphBase/J3DDrawBuffer.h" #include "JSystem/JKernel/JKRHeap.h" +#include "SSystem/SComponent/c_math.h" #include "d/com/d_com_inf_game.h" #include "d/kankyo/d_kankyo.h" #include "d/kankyo/d_kankyo_rain.h" @@ -218,53 +219,55 @@ extern "C" u8 sincosTable___5JMath[65536]; extern "C" extern u8 data_80450EE0[8]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; +static void dKyw_pntlight_set(WIND_INFLUENCE* pntwind); + // // Declarations: // /* 80056AA8-80056AF8 0513E8 0050+00 3/3 0/0 0/0 .text dKyw_setDrawPacketList__FP9J3DPacketi */ -static J3DPacket* dKyw_setDrawPacketList(J3DPacket* p_packet, int param_1) { - if (p_packet == NULL) { +static J3DPacket* dKyw_setDrawPacketList(J3DPacket* i_packet, int i_type) { + if (i_packet == NULL) { return NULL; } else { - dComIfGd_getListFilter()->entryImm(p_packet, 0); - return p_packet; + dComIfGd_getListFilter()->entryImm(i_packet, 0); + return i_packet; } } /* 80056AF8-80056B48 051438 0050+00 3/3 0/0 0/0 .text * dKyw_setDrawPacketListIndScreen__FP9J3DPacketi */ -static J3DPacket* dKyw_setDrawPacketListIndScreen(J3DPacket* p_packet, int param_1) { - if (p_packet == NULL) { +static J3DPacket* dKyw_setDrawPacketListIndScreen(J3DPacket* i_packet, int i_type) { + if (i_packet == NULL) { return NULL; } else { - dComIfGd_getOpaListIndScreen()->entryImm(p_packet, 0); - return p_packet; + dComIfGd_getOpaListIndScreen()->entryImm(i_packet, 0); + return i_packet; } } /* 80056B48-80056BD8 051488 0090+00 5/5 0/0 0/0 .text dKyw_setDrawPacketListSky__FP9J3DPacketi */ -static J3DPacket* dKyw_setDrawPacketListSky(J3DPacket* p_packet, int type) { - if (p_packet == NULL) { +static J3DPacket* dKyw_setDrawPacketListSky(J3DPacket* i_packet, int i_type) { + if (i_packet == NULL) { return NULL; } else { dComIfGd_setListSky(); - j3dSys.getDrawBuffer(type)->entryImm(p_packet, 0); + j3dSys.getDrawBuffer(i_type)->entryImm(i_packet, 0); dComIfGd_setList(); - return p_packet; + return i_packet; } } /* 80056BD8-80056C60 051518 0088+00 2/2 0/0 0/0 .text dKyw_setDrawPacketListXluBg__FP9J3DPacketi */ -static J3DPacket* dKyw_setDrawPacketListXluBg(J3DPacket* p_packet, int type) { - if (p_packet == NULL) { +static J3DPacket* dKyw_setDrawPacketListXluBg(J3DPacket* i_packet, int i_type) { + if (i_packet == NULL) { return NULL; } else { dComIfGd_setXluListBG(); - j3dSys.getDrawBuffer(type)->entryImm(p_packet, 0); + j3dSys.getDrawBuffer(i_type)->entryImm(i_packet, 0); dComIfGd_setList(); - return p_packet; + return i_packet; } } @@ -282,9 +285,7 @@ void dKankyo_sunlenz_Packet::draw() { RAIN_EFF::~RAIN_EFF() {} /* 80056D0C-80056D10 05164C 0004+00 1/1 0/0 0/0 .text __ct__8RAIN_EFFFv */ -RAIN_EFF::RAIN_EFF() { - /* empty function */ -} +RAIN_EFF::RAIN_EFF() {} /* 80056D10-80056D58 051650 0048+00 1/0 0/0 0/0 .text draw__19dKankyo_rain_PacketFv */ void dKankyo_rain_Packet::draw() { @@ -296,9 +297,7 @@ void dKankyo_rain_Packet::draw() { SNOW_EFF::~SNOW_EFF() {} /* 80056D94-80056D98 0516D4 0004+00 0/0 1/1 0/0 .text __ct__8SNOW_EFFFv */ -SNOW_EFF::SNOW_EFF() { - /* empty function */ -} +SNOW_EFF::SNOW_EFF() {} /* 80056D98-80056DC8 0516D8 0030+00 1/0 0/0 0/0 .text draw__19dKankyo_snow_PacketFv */ void dKankyo_snow_Packet::draw() { @@ -309,9 +308,7 @@ void dKankyo_snow_Packet::draw() { STAR_EFF::~STAR_EFF() {} /* 80056E04-80056E08 051744 0004+00 0/0 1/1 0/0 .text __ct__8STAR_EFFFv */ -STAR_EFF::STAR_EFF() { - /* empty function */ -} +STAR_EFF::STAR_EFF() {} /* 80056E08-80056E38 051748 0030+00 1/0 0/0 0/0 .text draw__19dKankyo_star_PacketFv */ void dKankyo_star_Packet::draw() { @@ -322,9 +319,7 @@ void dKankyo_star_Packet::draw() { CLOUD_EFF::~CLOUD_EFF() {} /* 80056E74-80056E78 0517B4 0004+00 1/1 0/0 0/0 .text __ct__9CLOUD_EFFFv */ -CLOUD_EFF::CLOUD_EFF() { - /* empty function */ -} +CLOUD_EFF::CLOUD_EFF() {} /* 80056E78-80056EA8 0517B8 0030+00 1/0 0/0 0/0 .text draw__20dKankyo_cloud_PacketFv */ void dKankyo_cloud_Packet::draw() { @@ -335,9 +330,7 @@ void dKankyo_cloud_Packet::draw() { HOUSI_EFF::~HOUSI_EFF() {} /* 80056EE4-80056EE8 051824 0004+00 1/1 0/0 0/0 .text __ct__9HOUSI_EFFFv */ -HOUSI_EFF::HOUSI_EFF() { - /* empty function */ -} +HOUSI_EFF::HOUSI_EFF() {} /* 80056EE8-80056F18 051828 0030+00 1/0 0/0 0/0 .text draw__20dKankyo_housi_PacketFv */ void dKankyo_housi_Packet::draw() { @@ -348,9 +341,7 @@ void dKankyo_housi_Packet::draw() { VRKUMO_EFF::~VRKUMO_EFF() {} /* 80056F54-80056F58 051894 0004+00 1/1 0/0 0/0 .text __ct__10VRKUMO_EFFFv */ -VRKUMO_EFF::VRKUMO_EFF() { - /* empty function */ -} +VRKUMO_EFF::VRKUMO_EFF() {} /* 80056F58-80056F8C 051898 0034+00 1/0 0/0 0/0 .text draw__21dKankyo_vrkumo_PacketFv */ void dKankyo_vrkumo_Packet::draw() { @@ -361,9 +352,7 @@ void dKankyo_vrkumo_Packet::draw() { EF_ODOUR_EFF::~EF_ODOUR_EFF() {} /* 80056FC8-80056FCC 051908 0004+00 1/1 0/0 0/0 .text __ct__12EF_ODOUR_EFFFv */ -EF_ODOUR_EFF::EF_ODOUR_EFF() { - /* empty function */ -} +EF_ODOUR_EFF::EF_ODOUR_EFF() {} /* 80056FCC-80056FFC 05190C 0030+00 1/0 0/0 0/0 .text draw__20dKankyo_odour_PacketFv */ void dKankyo_odour_Packet::draw() { @@ -374,9 +363,7 @@ void dKankyo_odour_Packet::draw() { EF_MUD_EFF::~EF_MUD_EFF() {} /* 80057038-8005703C 051978 0004+00 1/1 0/0 0/0 .text __ct__10EF_MUD_EFFFv */ -EF_MUD_EFF::EF_MUD_EFF() { - /* empty function */ -} +EF_MUD_EFF::EF_MUD_EFF() {} /* 8005703C-8005706C 05197C 0030+00 1/0 0/0 0/0 .text draw__18dKankyo_mud_PacketFv */ void dKankyo_mud_Packet::draw() { @@ -387,9 +374,7 @@ void dKankyo_mud_Packet::draw() { EF_EVIL_EFF::~EF_EVIL_EFF() {} /* 800570A8-800570AC 0519E8 0004+00 1/1 0/0 0/0 .text __ct__11EF_EVIL_EFFFv */ -EF_EVIL_EFF::EF_EVIL_EFF() { - /* empty function */ -} +EF_EVIL_EFF::EF_EVIL_EFF() {} /* 800570AC-800570DC 0519EC 0030+00 1/0 0/0 0/0 .text draw__19dKankyo_evil_PacketFv */ void dKankyo_evil_Packet::draw() { @@ -397,127 +382,127 @@ void dKankyo_evil_Packet::draw() { } /* 800570DC-8005710C 051A1C 0030+00 1/1 0/0 0/0 .text dKyw_drawSun__Fi */ -static void dKyw_drawSun(int type) { - dKyw_setDrawPacketListSky(g_env_light.mpSunPacket, type); +static void dKyw_drawSun(int i_type) { + dKyw_setDrawPacketListSky(g_env_light.mpSunPacket, i_type); } /* 8005710C-80057130 051A4C 0024+00 1/1 0/0 0/0 .text dKyw_Sun_Draw__Fv */ static void dKyw_Sun_Draw() { - dKyw_drawSun(XLU_BUFFER); + dKyw_drawSun(J3DSys_XLU_BUFFER_e); } /* 80057130-80057174 051A70 0044+00 1/1 0/0 0/0 .text dKyw_drawSunlenz__Fi */ -static void dKyw_drawSunlenz(int type) { +static void dKyw_drawSunlenz(int i_type) { if (g_env_light.mpSunLenzPacket->mDrawLenzInSky == false) { - dKyw_setDrawPacketListIndScreen(g_env_light.mpSunLenzPacket, type); + dKyw_setDrawPacketListIndScreen(g_env_light.mpSunLenzPacket, i_type); } else { - dKyw_setDrawPacketListSky(g_env_light.mpSunLenzPacket, type); + dKyw_setDrawPacketListSky(g_env_light.mpSunLenzPacket, i_type); } } /* 80057174-80057198 051AB4 0024+00 1/1 0/0 0/0 .text dKyw_Sunlenz_Draw__Fv */ static void dKyw_Sunlenz_Draw() { - dKyw_drawSunlenz(XLU_BUFFER); + dKyw_drawSunlenz(J3DSys_XLU_BUFFER_e); } /* 80057198-800571C8 051AD8 0030+00 1/1 0/0 0/0 .text dKyw_drawRain__Fi */ -static void dKyw_drawRain(int type) { - dKyw_setDrawPacketList(g_env_light.mpRainPacket, type); +static void dKyw_drawRain(int i_type) { + dKyw_setDrawPacketList(g_env_light.mpRainPacket, i_type); } /* 800571C8-800571EC 051B08 0024+00 1/1 0/0 0/0 .text dKyw_Rain_Draw__Fv */ static void dKyw_Rain_Draw() { - dKyw_drawRain(XLU_BUFFER); + dKyw_drawRain(J3DSys_XLU_BUFFER_e); } /* 800571EC-8005721C 051B2C 0030+00 1/1 0/0 0/0 .text dKyw_drawSnow__Fi */ -static void dKyw_drawSnow(int type) { - dKyw_setDrawPacketList(g_env_light.mpSnowPacket, type); +static void dKyw_drawSnow(int i_type) { + dKyw_setDrawPacketList(g_env_light.mpSnowPacket, i_type); } /* 8005721C-80057240 051B5C 0024+00 1/1 0/0 0/0 .text dKyw_Snow_Draw__Fv */ static void dKyw_Snow_Draw() { - dKyw_drawSnow(XLU_BUFFER); + dKyw_drawSnow(J3DSys_XLU_BUFFER_e); } /* 80057240-80057270 051B80 0030+00 1/1 0/0 0/0 .text dKyw_drawStar__Fi */ -static void dKyw_drawStar(int type) { - dKyw_setDrawPacketListSky(g_env_light.mpStarPacket, type); +static void dKyw_drawStar(int i_type) { + dKyw_setDrawPacketListSky(g_env_light.mpStarPacket, i_type); } /* 80057270-80057294 051BB0 0024+00 1/1 0/0 0/0 .text dKyw_Star_Draw__Fv */ static void dKyw_Star_Draw() { - dKyw_drawStar(XLU_BUFFER); + dKyw_drawStar(J3DSys_XLU_BUFFER_e); } /* 80057294-800572C4 051BD4 0030+00 1/1 0/0 0/0 .text dKyw_drawHousi__Fi */ -static void dKyw_drawHousi(int type) { - dKyw_setDrawPacketList(g_env_light.mpHousiPacket, type); +static void dKyw_drawHousi(int i_type) { + dKyw_setDrawPacketList(g_env_light.mpHousiPacket, i_type); } /* 800572C4-800572E8 051C04 0024+00 1/1 0/0 0/0 .text dKyw_Housi_Draw__Fv */ static void dKyw_Housi_Draw() { - dKyw_drawHousi(XLU_BUFFER); + dKyw_drawHousi(J3DSys_XLU_BUFFER_e); } /* 800572E8-80057318 051C28 0030+00 1/1 0/0 0/0 .text dKyw_drawCloud__Fi */ -static void dKyw_drawCloud(int type) { - dKyw_setDrawPacketListIndScreen(g_env_light.mpCloudPacket, type); +static void dKyw_drawCloud(int i_type) { + dKyw_setDrawPacketListIndScreen(g_env_light.mpCloudPacket, i_type); } /* 80057318-8005733C 051C58 0024+00 1/1 0/0 0/0 .text dKyw_Cloud_Draw__Fv */ static void dKyw_Cloud_Draw() { - dKyw_drawCloud(XLU_BUFFER); + dKyw_drawCloud(J3DSys_XLU_BUFFER_e); } /* 8005733C-8005736C 051C7C 0030+00 1/1 0/0 0/0 .text dKyw_drawVrkumo__Fi */ -static void dKyw_drawVrkumo(int type) { - dKyw_setDrawPacketListSky(g_env_light.mpVrkumoPacket, type); +static void dKyw_drawVrkumo(int i_type) { + dKyw_setDrawPacketListSky(g_env_light.mpVrkumoPacket, i_type); } /* 8005736C-80057390 051CAC 0024+00 1/1 0/0 0/0 .text dKyw_Vrkumo_Draw__Fv */ static void dKyw_Vrkumo_Draw() { - dKyw_drawVrkumo(XLU_BUFFER); + dKyw_drawVrkumo(J3DSys_XLU_BUFFER_e); } /* 80057390-800573C0 051CD0 0030+00 1/1 0/0 0/0 .text dKyw_shstar_packet__Fi */ -static void dKyw_shstar_packet(int type) { - dKyw_setDrawPacketListSky(g_env_light.mpShstarPacket, type); +static void dKyw_shstar_packet(int i_type) { + dKyw_setDrawPacketListSky(g_env_light.mpShstarPacket, i_type); } /* 800573C0-800573E4 051D00 0024+00 1/1 0/0 0/0 .text dKyw_shstar_Draw__Fv */ static void dKyw_shstar_Draw() { - dKyw_shstar_packet(XLU_BUFFER); + dKyw_shstar_packet(J3DSys_XLU_BUFFER_e); } /* 800573E4-80057414 051D24 0030+00 1/1 0/0 0/0 .text dKyw_odour_packet__Fi */ -static void dKyw_odour_packet(int type) { - dKyw_setDrawPacketListIndScreen(g_env_light.mpOdourPacket, type); +static void dKyw_odour_packet(int i_type) { + dKyw_setDrawPacketListIndScreen(g_env_light.mpOdourPacket, i_type); } /* 80057414-80057438 051D54 0024+00 1/1 0/0 0/0 .text dKyw_Odour_Draw__Fv */ static void dKyw_Odour_Draw() { - dKyw_odour_packet(XLU_BUFFER); + dKyw_odour_packet(J3DSys_XLU_BUFFER_e); } /* 80057438-80057468 051D78 0030+00 1/1 0/0 0/0 .text dKyw_mud_packet__Fi */ -static void dKyw_mud_packet(int type) { - dKyw_setDrawPacketListXluBg(g_env_light.mpMudPacket, type); +static void dKyw_mud_packet(int i_type) { + dKyw_setDrawPacketListXluBg(g_env_light.mpMudPacket, i_type); } /* 80057468-8005748C 051DA8 0024+00 1/1 0/0 0/0 .text dKyw_mud_Draw__Fv */ static void dKyw_mud_Draw() { - dKyw_mud_packet(XLU_BUFFER); + dKyw_mud_packet(J3DSys_XLU_BUFFER_e); } /* 8005748C-800574BC 051DCC 0030+00 1/1 0/0 0/0 .text dKyw_evil_packet__Fi */ -static void dKyw_evil_packet(int type) { - dKyw_setDrawPacketListXluBg(g_env_light.mpEvilPacket, type); +static void dKyw_evil_packet(int i_type) { + dKyw_setDrawPacketListXluBg(g_env_light.mpEvilPacket, i_type); } /* 800574BC-800574E0 051DFC 0024+00 1/1 0/0 0/0 .text dKyw_evil_Draw__Fv */ static void dKyw_evil_Draw() { - dKyw_evil_packet(XLU_BUFFER); + dKyw_evil_packet(J3DSys_XLU_BUFFER_e); } /* 804520E0-804520E4 0006E0 0004+00 12/12 0/0 0/0 .sdata2 @4378 */ @@ -1336,20 +1321,13 @@ SECTION_SDATA2 static f32 lit_5192 = 24575.0f; SECTION_SDATA2 static f32 lit_5193 = 0.00139999995008111f; /* 80059728-80059E38 054068 0710+00 1/1 0/0 0/0 .text wether_move_vrkumo__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void wether_move_vrkumo() { - nofralloc -#include "asm/d/kankyo/d_kankyo_wether/wether_move_vrkumo__Fv.s" -} -#pragma pop - -/* static void wether_move_vrkumo() { +// gameinfo load issue, cmath instruction order / reg alloc +#ifdef NONMATCHING +static void wether_move_vrkumo() { BOOL var_r31 = false; static cXyz r09o(-180000.0f, 750.0f, -200000.0f); - if (dComIfGp_checkStatus(1) && !g_env_light.mbVrboxInvisible) { + if (dComIfGp_checkStatus(1) && !g_env_light.mVrboxInvisible) { g_env_light.mVrkumoCount = 6; if (memcmp(dComIfGp_getStartStageName(), "D_MN07", 6) == 0 || @@ -1358,16 +1336,18 @@ static asm void wether_move_vrkumo() { (g_env_light.field_0x12cc != 0 || i_dComIfGp_event_runCheck()))) { cLib_addCalc(&g_env_light.mVrkumoStrength, 1.0f, 0.1f, 0.003f, 0.0000001f); - } else if (strcmp(dComIfGp_getStartStageName(), "F_SP104") == 0 && dComIfG_play_c::getLayerNo(0) > 2) { - if (g_env_light.mColpatCurr > 4) { + } else if (strcmp(dComIfGp_getStartStageName(), "F_SP104") == 0 && + dComIfG_play_c::getLayerNo(0) >= 3) + { + if (g_env_light.mColPatCurr >= 4) { cLib_addCalc(&g_env_light.mVrkumoStrength, 1.0f, 0.1f, 0.003f, 0.0000001f); } else { cLib_addCalc(&g_env_light.mVrkumoStrength, 0.0f, 0.08f, 0.002f, 0.00000001f); } - } else if ((g_env_light.mColpatCurr == 1 && g_env_light.mColPatBlend > 0.0f) || - (g_env_light.mColpatPrev == 1 && g_env_light.mColPatBlend < 1.0f) || - (g_env_light.mColpatCurr == 2 && g_env_light.mColPatBlend > 0.0f) || - (g_env_light.mColpatPrev == 2 && g_env_light.mColPatBlend < 1.0f)) + } else if ((g_env_light.mColPatCurr == 1 && g_env_light.mColPatBlend > 0.0f) || + (g_env_light.mColPatPrev == 1 && g_env_light.mColPatBlend < 1.0f) || + (g_env_light.mColPatCurr == 2 && g_env_light.mColPatBlend > 0.0f) || + (g_env_light.mColPatPrev == 2 && g_env_light.mColPatBlend < 1.0f)) { cLib_addCalc(&g_env_light.mVrkumoStrength, 1.0f, 0.1f, 0.003f, 0.0000001f); } else { @@ -1384,8 +1364,9 @@ static asm void wether_move_vrkumo() { } roomRead_class* room_p = dComIfGp_getStageRoom(); - if (room_p != NULL && dComIfGp_roomControl_getStayNo() < room_p->field_0x0) { - var_r31 = dStage_roomRead_dt_c_GetVrboxswitch(room_p->field_0x4[dComIfGp_roomControl_getStayNo()]); + if (room_p != NULL && room_p->field_0x0 > dComIfGp_roomControl_getStayNo()) { + var_r31 = dStage_roomRead_dt_c_GetVrboxswitch( + *room_p->field_0x4[dComIfGp_roomControl_getStayNo()]); } if (strcmp(dComIfGp_getStartStageName(), "F_SP200") == 0) { @@ -1402,32 +1383,27 @@ static asm void wether_move_vrkumo() { return; } - if (dComIfG_getStageRes("Stage", "vr_box.bmd") != NULL || - dComIfG_getStageRes("Stage", "vr_box.bdl")) - { - g_env_light.mpVrkumoPacket->mpCloudTx1 = - (u8*)dComIfG_getStageRes("Stage", "cloud_01.bti"); - g_env_light.mpVrkumoPacket->mpCloudTx2 = - (u8*)dComIfG_getStageRes("Stage", "cloud_02.bti"); - g_env_light.mpVrkumoPacket->mpCloudTx3 = - (u8*)dComIfG_getStageRes("Stage", "cloud_03.bti"); - } else { - g_env_light.mpVrkumoPacket->mpCloudTx1 = - (u8*)dComIfG_getStageRes("Stage", "cloudtx_01.bti"); - g_env_light.mpVrkumoPacket->mpCloudTx2 = - (u8*)dComIfG_getStageRes("Stage", "cloudtx_02.bti"); - g_env_light.mpVrkumoPacket->mpCloudTx3 = - (u8*)dComIfG_getStageRes("Stage", "cloudtx_03.bti"); - } + g_env_light.mpVrkumoPacket->mpResCloudtx_01 = + (u8*)dComIfG_getStageRes("cloudtx_01.bti"); + g_env_light.mpVrkumoPacket->mpResCloudtx_02 = + (u8*)dComIfG_getStageRes("cloudtx_02.bti"); + g_env_light.mpVrkumoPacket->mpResCloudtx_03 = + (u8*)dComIfG_getStageRes("cloudtx_03.bti"); - if (g_env_light.mpVrkumoPacket->mpCloudTx1 == NULL) { + if (g_env_light.mpVrkumoPacket->mpResCloudtx_01 == NULL || + g_env_light.mpVrkumoPacket->mpResCloudtx_02 == NULL || + g_env_light.mpVrkumoPacket->mpResCloudtx_03 == NULL) + { g_env_light.mVrkumoStatus = 99; } for (int i = 0; i < 100; i++) { - g_env_light.mpVrkumoPacket->mInst[i].mStatus = 0; + g_env_light.mpVrkumoPacket->mVrkumoEff[i].mStatus = 0; } + g_env_light.mpVrkumoPacket->field_0x1150 = 0.0f; + g_env_light.mpVrkumoPacket->field_0x1154 = 0.0f; + vrkumo_move(); g_env_light.mVrkumoStatus++; } @@ -1436,23 +1412,57 @@ static asm void wether_move_vrkumo() { vrkumo_move(); dKyw_get_wind_vec(); - cXyz localE0; - localE0.x = g_env_light.mWind.vec.x; - localE0.y = g_env_light.mWind.vec.y; - localE0.z = g_env_light.mWind.vec.z; + cXyz sp8; + f32 wind_vec_x = g_env_light.mWind.vec.x; + f32 wind_vec_y = g_env_light.mWind.vec.y; + f32 wind_vec_z = g_env_light.mWind.vec.z; f32 var_f31 = g_env_light.mWind.pow; if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { - pow = 0.3f; + var_f31 = 0.3f; } - f32 x = JMAFastSqrt(localE0.x * localE0.x + localE0.z * localE0.z); - cM_atan2s(localE0.x, localE0.z); - cM_atan2s(localE0.y, x); - + f32 var_f30 = JMAFastSqrt(wind_vec_x * wind_vec_x + wind_vec_z * wind_vec_z); + f32 temp_f27_2 = cM_atan2s(wind_vec_x, wind_vec_z); + f32 temp_r4_2 = cM_atan2s(wind_vec_y, var_f30); + + temp_f27_2 += 24575.0f; + + sp8.x = cM_ssin(temp_f27_2) * cM_scos(temp_r4_2); + sp8.y = cM_ssin(temp_r4_2); + sp8.z = cM_scos(temp_f27_2) * cM_scos(temp_r4_2); + + g_env_light.mpVrkumoPacket->field_0x1150 += (sp8.x * var_f31) * 0.0014f; + g_env_light.mpVrkumoPacket->field_0x1154 += (sp8.z * var_f31) * 0.0014f; + + while (g_env_light.mpVrkumoPacket->field_0x1150 < 0.0f) { + g_env_light.mpVrkumoPacket->field_0x1150 += 1.0f; + } + + while (g_env_light.mpVrkumoPacket->field_0x1150 > 1.0f) { + g_env_light.mpVrkumoPacket->field_0x1150 -= 1.0f; + } + + while (g_env_light.mpVrkumoPacket->field_0x1154 < 0.0f) { + g_env_light.mpVrkumoPacket->field_0x1154 += 1.0f; + } + + while (g_env_light.mpVrkumoPacket->field_0x1154 > 1.0f) { + g_env_light.mpVrkumoPacket->field_0x1154 -= 1.0f; + } break; } -} */ +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void wether_move_vrkumo() { + nofralloc +#include "asm/d/kankyo/d_kankyo_wether/wether_move_vrkumo__Fv.s" +} +#pragma pop +#endif /* 80059E38-80059F74 054778 013C+00 1/1 0/0 0/0 .text wether_move_mud__Fv */ static void wether_move_mud() { @@ -1615,7 +1625,7 @@ SECTION_SDATA2 static f32 lit_5364[1 + 1 /* padding */] = { }; /* 8005A340-8005A57C 054C80 023C+00 0/0 1/1 0/0 .text dKyw_wether_proc__Fv */ -// small branch issues +// small branch issue #ifdef NONMATCHING void dKyw_wether_proc() { // Stage is Faron Woods or Fishing Pond or Hyrule Field @@ -1626,8 +1636,8 @@ void dKyw_wether_proc() { { if (!dKy_darkworld_check()) { // Stage is Hyrule Field - if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") || g_env_light.mDaytime >= 75.0f || - g_env_light.mDaytime <= 120.0f) + if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") || + !(g_env_light.mDaytime >= 75.0f) || !(g_env_light.mDaytime <= 120.0f)) { // Stage is Hyrule Field if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") && @@ -1682,7 +1692,7 @@ static void dKyw_wind_init() { g_env_light.field_0xe6c = 0; g_env_light.field_0xe64 = 0; g_env_light.field_0xe66 = 0; - g_env_light.mWind.field_0xc = 0; + g_env_light.mWind.vec_override = 0; g_env_light.custom_windpower = tmp_0; g_env_light.mEvtWindSet = 0; g_env_light.mTeachWindExist = 0; @@ -1716,6 +1726,150 @@ SECTION_SDATA2 static f32 lit_5530 = 0.0010000000474974513f; SECTION_SDATA2 static f32 lit_5531 = 0.004999999888241291f; /* 8005A5C0-8005AAE0 054F00 0520+00 0/0 2/2 0/0 .text dKyw_wind_set__Fv */ +// matches with literals +#ifdef NONMATCHING +void dKyw_wind_set() { + s16 var_r30; + s16 var_r29; + int var_r28 = 0; + + cXyz wind_vec; + f32 strength; + + if (g_env_light.mWind.vec_override != NULL) { + wind_vec = *g_env_light.mWind.vec_override; + strength = g_env_light.custom_windpower; + + cM_atan2s(wind_vec.x, wind_vec.z); + cM_atan2s(wind_vec.absXZ(), wind_vec.y); + } else { + dStage_FileList_dt_c* fili_p = NULL; + int wind_level = 0; + + if (dComIfGp_roomControl_getStayNo() >= 0) { + fili_p = dComIfGp_roomControl_getStatusRoomDt(dComIfGp_roomControl_getStayNo()) + ->mRoomDt.getFileListInfo(); + } + + var_r30 = 0; + var_r29 = 0; + if (fili_p != NULL) { + var_r28 = dStage_FileList_dt_GlobalWindDir(fili_p); + } + + s32 var_r4 = dComIfGp_roomControl_getStayNo(); + if (dComIfGp_roomControl_getStatusRoomDt(var_r4) != NULL) { + s32 var_r4_2 = dComIfGp_roomControl_getStayNo(); + dStage_Lbnk_c* lbnk_p = + dComIfGp_roomControl_getStatusRoomDt(var_r4_2)->mRoomDt.getLbnk(); + if (lbnk_p != NULL) { + dStage_Lbnk_dt_c* data_p = lbnk_p->entries; + + if (dStage_lbnkWIND(&data_p[dComIfG_play_c::getLayerNo(0)]) != 7) { + var_r28 = dStage_lbnkWIND(&data_p[0]); + } + } + } + + switch (var_r28) { + case 0: + case 1: + break; + case 2: + var_r30 = 0; + var_r29 = -0x4000; + break; + case 3: + var_r30 = 0; + var_r29 = 0; + break; + case 4: + var_r30 = 0; + var_r29 = 0x4000; + break; + case 5: + var_r30 = 0; + var_r29 = 0x7FFF; + break; + } + + if (g_env_light.mEvtWindSet != 0 && g_env_light.mEvtWindSet != 0xFF) { + var_r30 = g_env_light.mEvtWindAngleX; + var_r29 = g_env_light.mEvtWindAngleY; + } + + wind_vec.x = cM_scos(var_r30) * cM_ssin(var_r29); + wind_vec.y = cM_ssin(var_r30); + wind_vec.z = cM_scos(var_r30) * cM_scos(var_r29); + + if (fili_p != NULL) { + wind_level = dStage_FileList_dt_GlobalWindLevel(fili_p); + } + + s32 var_r4_3 = dComIfGp_roomControl_getStayNo(); + if (dComIfGp_roomControl_getStatusRoomDt(var_r4_3) != NULL) { + s32 var_r4_4 = dComIfGp_roomControl_getStayNo(); + dStage_Lbnk_c* lbnk_p = + dComIfGp_roomControl_getStatusRoomDt(var_r4_4)->mRoomDt.getLbnk(); + if (lbnk_p != NULL) { + dStage_Lbnk_dt_c* data_p = lbnk_p->entries; + + if (dStage_lbnkWlevel(&data_p[0]) != 3) { + wind_level = dStage_lbnkWlevel(&data_p[0]); + } + } + } + + switch (wind_level) { + case 0: + strength = 0.3f; + break; + case 1: + strength = 0.6f; + break; + case 2: + strength = 0.9f; + break; + default: + strength = 0.0f; + break; + } + } + + if (g_env_light.mEvtWindSet != 0) { + strength = g_env_light.custom_windpower; + } + + if (strength > 1.0f) { + strength = 1.0f; + } + + if (strcmp(dComIfGp_getStartStageName(), "D_MN07") == 0 && + (dComIfGp_roomControl_getStayNo() == 0 || dComIfGp_roomControl_getStayNo() == 3 || + dComIfGp_roomControl_getStayNo() == 6 || dComIfGp_roomControl_getStayNo() == 13)) + { + mDoAud_mEnvse_setWindDirection(&wind_vec); + if (strength <= 0.5f) { + mDoAud_mEnvse_setWindType(3); + } else { + mDoAud_mEnvse_setWindType(1); + } + + s8 reverb = dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()); + mDoAud_mEnvse_startStrongWindSe(reverb); + } + + if (g_env_light.mInitAnmTimer != 0) { + g_env_light.mWind.vec = wind_vec; + g_env_light.mWind.pow = strength; + } else { + cLib_addCalc(&g_env_light.mWind.vec.x, wind_vec.x, 0.05f, 2.0f, 0.001f); + cLib_addCalc(&g_env_light.mWind.vec.y, wind_vec.y, 0.05f, 2.0f, 0.001f); + cLib_addCalc(&g_env_light.mWind.vec.z, wind_vec.z, 0.05f, 2.0f, 0.001f); + cLib_addCalc(&g_env_light.mWind.pow, strength, 0.05f, 1.0f, 0.005f); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1724,6 +1878,7 @@ asm void dKyw_wind_set() { #include "asm/d/kankyo/d_kankyo_wether/dKyw_wind_set__Fv.s" } #pragma pop +#endif /* 8005AAE0-8005AAF0 055420 0010+00 1/1 6/6 7/7 .text dKyw_get_wind_vec__Fv */ cXyz* dKyw_get_wind_vec() { @@ -1742,21 +1897,72 @@ cXyz dKyw_get_wind_vecpow() { } /* 8005AB64-8005AC30 0554A4 00CC+00 0/0 0/0 1/1 .text dKyw_plight_collision_set__FP4cXyzssfffff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKyw_plight_collision_set(cXyz* param_0, s16 param_1, s16 param_2, f32 param_3, - f32 param_4, f32 param_5, f32 param_6, f32 param_7) { - nofralloc -#include "asm/d/kankyo/d_kankyo_wether/dKyw_plight_collision_set__FP4cXyzssfffff.s" +void dKyw_plight_collision_set(cXyz* param_0, s16 param_1, s16 param_2, f32 param_3, f32 param_4, + f32 param_5, f32 param_6, f32 param_7) { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + + for (int i = 0; i < 5; i++) { + if (!env_light->mWindInfluenceEntity[i].mInUse) { + env_light->mWindInfluenceEntity[i].mInUse = true; + env_light->mWindInfluenceEntity[i].mMinRadius = param_4; + env_light->mWindInfluenceEntity[i].mSpeed = param_6; + env_light->mWindInfluenceEntity[i].mStrengthMaxVel = param_7; + + WIND_INFLUENCE* wind_inf = &env_light->mWindInfluenceEntity[i].mInfluence; + wind_inf->position = *param_0; + wind_inf->mDirection.x = cM_scos(param_1) * cM_ssin(param_2); + wind_inf->mDirection.y = cM_ssin(param_1); + wind_inf->mDirection.z = cM_scos(param_1) * cM_scos(param_2); + wind_inf->mRadius = param_3; + wind_inf->field_0x20 = wind_inf->mRadius; + wind_inf->mStrength = param_5; + + dKyw_pntlight_set(wind_inf); + break; + } + } } -#pragma pop /* ############################################################################################## */ /* 804521A4-804521A8 0007A4 0004+00 1/1 0/0 0/0 .sdata2 @5630 */ SECTION_SDATA2 static f32 lit_5630 = 1.0f / 5.0f; /* 8005AC30-8005AD44 055570 0114+00 1/1 0/0 0/0 .text squal_proc__Fv */ +// matches with literals +#ifdef NONMATCHING +static void squal_proc() { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + WIND_INFLUENCE* influence; + + for (int i = 0; i < 5; i++) { + influence = &env_light->mWindInfluenceEntity[i].mInfluence; + switch (env_light->mWindInfluenceEntity[i].mInUse) { + case 0: + break; + case 1: + influence->position.x += + influence->mDirection.x * env_light->mWindInfluenceEntity[i].mSpeed; + influence->position.y += + influence->mDirection.y * env_light->mWindInfluenceEntity[i].mSpeed; + influence->position.z += + influence->mDirection.z * env_light->mWindInfluenceEntity[i].mSpeed; + + cLib_addCalc(&influence->mStrength, 0.0f, 0.2f, + env_light->mWindInfluenceEntity[i].mStrengthMaxVel, 0.001f); + + f32 speed = 1.0f - influence->mStrength; + f32 target = env_light->mWindInfluenceEntity[i].mMinRadius; + cLib_addCalc(&influence->mRadius, target, speed, speed * target * 0.05f, 0.01f); + + if (influence->mStrength < 0.01f) { + dKyw_pntwind_cut(influence); + env_light->mWindInfluenceEntity[i].mInUse = false; + } + break; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1765,6 +1971,7 @@ static asm void squal_proc() { #include "asm/d/kankyo/d_kankyo_wether/squal_proc__Fv.s" } #pragma pop +#endif /* 8005AD44-8005AD98 055684 0054+00 1/1 0/0 0/0 .text dKyw_pntwind_init__Fv */ static void dKyw_pntwind_init() { @@ -1778,44 +1985,107 @@ static void dKyw_pntwind_init() { } /* 8005AD98-8005ADFC 0556D8 0064+00 2/2 0/0 0/0 .text pntwind_set__FP14WIND_INFLUENCE */ -static void pntwind_set(WIND_INFLUENCE* pntwind) { +static void pntwind_set(WIND_INFLUENCE* i_pntwind) { int i = 0; for (; i < 30; i++) { if (g_env_light.mPntWind[i] == NULL) { - g_env_light.mPntWind[i] = pntwind; + g_env_light.mPntWind[i] = i_pntwind; g_env_light.mPntWind[i]->field_0x24 = i; break; } } if (i >= 30) { - pntwind->field_0x24 = 9999; + i_pntwind->field_0x24 = 9999; } } /* 8005ADFC-8005AE28 05573C 002C+00 0/0 0/0 5/5 .text dKyw_pntwind_set__FP14WIND_INFLUENCE */ -void dKyw_pntwind_set(WIND_INFLUENCE* pntwind) { - pntwind->mConstant = 0; - pntwind->field_0x29 = 0; - pntwind_set(pntwind); +void dKyw_pntwind_set(WIND_INFLUENCE* i_pntwind) { + i_pntwind->mConstant = 0; + i_pntwind->field_0x29 = 0; + pntwind_set(i_pntwind); } /* 8005AE28-8005AE58 055768 0030+00 1/1 0/0 0/0 .text dKyw_pntlight_set__FP14WIND_INFLUENCE */ -static void dKyw_pntlight_set(WIND_INFLUENCE* pntwind) { - pntwind->mConstant = 0; - pntwind->field_0x29 = 1; - pntwind_set(pntwind); +static void dKyw_pntlight_set(WIND_INFLUENCE* i_pntwind) { + i_pntwind->mConstant = 0; + i_pntwind->field_0x29 = 1; + pntwind_set(i_pntwind); } /* 8005AE58-8005AE90 055798 0038+00 1/1 0/0 5/5 .text dKyw_pntwind_cut__FP14WIND_INFLUENCE */ -void dKyw_pntwind_cut(WIND_INFLUENCE* pntwind_cut) { - if (pntwind_cut != NULL && pntwind_cut->field_0x24 >= 0 && pntwind_cut->field_0x24 < 30) { - g_env_light.mPntWind[pntwind_cut->field_0x24] = NULL; +void dKyw_pntwind_cut(WIND_INFLUENCE* i_pntwind) { + if (i_pntwind != NULL && i_pntwind->field_0x24 >= 0 && i_pntwind->field_0x24 < 30) { + g_env_light.mPntWind[i_pntwind->field_0x24] = NULL; } } /* 8005AE90-8005B23C 0557D0 03AC+00 2/2 0/0 0/0 .text pntwind_get_info__FP4cXyzP4cXyzPfUc */ +// matches with literals +#ifdef NONMATCHING +static void pntwind_get_info(cXyz* param_0, cXyz* i_dir, f32* i_power, u8 param_3) { + i_dir->x = 0.0f; + i_dir->y = 0.0f; + i_dir->z = 0.0f; + *i_power = 0.0f; + + WIND_INFLUENCE* influence; + s32 influence_count = ARRAY_SIZE(g_env_light.mPntWind); + for (int i = 0; i < influence_count; i++) { + influence = g_env_light.mPntWind[i]; + if (influence != NULL && influence->field_0x29 == param_3) { + f32 dist = param_0->abs(influence->position); + + if (influence->mConstant == 0) { + if (dist < influence->mRadius && influence->mStrength > 0.0f && dist != 0.0f) { + f32 temp_f0; + if (influence->mRadius > 0.0f) { + f32 temp_f0_4 = (dist / influence->mRadius); + temp_f0 = 1.0f - (temp_f0_4 * temp_f0_4); + } else { + temp_f0 = 1.0f; + } + + *i_power = influence->mStrength * temp_f0; + + cXyz sp10; + sp10.x = + influence->position.x + -(influence->mDirection.x) * influence->mRadius; + sp10.y = + influence->position.y + -(influence->mDirection.y) * influence->mRadius; + sp10.z = + influence->position.z + -(influence->mDirection.z) * influence->mRadius; + dKyr_get_vectle_calc(&sp10, param_0, i_dir); + + if (param_0->abs(sp10) < influence->mRadius) { + i_dir->x = 0.0f; + i_dir->y = 0.0f; + i_dir->z = 0.0f; + } + return; + } + } else { + if (dist < influence->mRadius && influence->mStrength > 0.0f && dist != 0.0f) { + f32 temp_f0; + if (influence->mRadius > 0.0f) { + temp_f0 = 1.0f - (dist / influence->mRadius); + } else { + temp_f0 = 1.0f; + } + + i_dir->x = influence->mDirection.x; + i_dir->y = influence->mDirection.y; + i_dir->z = influence->mDirection.z; + *i_power = influence->mStrength * temp_f0; + return; + } + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1824,6 +2094,7 @@ static asm void pntwind_get_info(cXyz* param_0, cXyz* param_1, f32* param_2, u8 #include "asm/d/kankyo/d_kankyo_wether/pntwind_get_info__FP4cXyzP4cXyzPfUc.s" } #pragma pop +#endif /* 8005B23C-8005B260 055B7C 0024+00 3/3 0/0 0/0 .text dKyw_pntwind_get_info__FP4cXyzP4cXyzPf */ static void dKyw_pntwind_get_info(cXyz* param_0, cXyz* param_1, f32* param_2) { @@ -1837,26 +2108,14 @@ void dKyw_pntlight_collision_get_info(cXyz* param_0, cXyz* param_1, f32* param_2 } /* 8005B284-8005B2F8 055BC4 0074+00 0/0 1/1 0/0 .text dKyw_pntwind_get_vecpow__FP4cXyz */ -// missing mr instruction -#ifdef NONMATCHING -void dKyw_pntwind_get_vecpow(cXyz* out_vec) { - f32 pow; - cXyz vec; +cXyz dKyw_pntwind_get_vecpow(cXyz* param_0) { + cXyz direction; + f32 power; + dKyw_pntwind_get_info(param_0, &direction, &power); - dKyw_pntwind_get_info(out_vec, &vec, &pow); - vec = vec * pow; - *out_vec = vec; + direction = direction * power; + return direction; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dKyw_pntwind_get_vecpow(cXyz* param_0) { - nofralloc -#include "asm/d/kankyo/d_kankyo_wether/dKyw_pntwind_get_vecpow__FP4cXyz.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 804521A8-804521B0 0007A8 0004+04 2/2 0/0 0/0 .sdata2 @5855 */ @@ -1867,6 +2126,33 @@ SECTION_SDATA2 static f32 lit_5855[1 + 1 /* padding */] = { }; /* 8005B2F8-8005B530 055C38 0238+00 0/0 3/3 13/13 .text dKyw_get_AllWind_vec__FP4cXyzP4cXyzPf */ +// matches with literals +#ifdef NONMATCHING +void dKyw_get_AllWind_vec(cXyz* param_0, cXyz* i_direction, f32* i_power) { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + dKyw_pntwind_get_info(param_0, i_direction, i_power); + + cXyz sp54; + cXyz sp30; + cXyz sp24; + + sp30 = env_light->mWind.vec * (env_light->mWind.pow * (1.0f - *i_power)); + sp24 = *i_direction * (*i_power * 5.0f); + sp54 = sp30 + sp24; + *i_power = sp54.abs(); + + sp54 = sp54.normZP(); + if (sp54 != cXyz::Zero) { + i_direction->x = sp54.x; + i_direction->y = sp54.y; + i_direction->z = sp54.z; + } else { + i_direction->x = env_light->mWind.vec.x; + i_direction->y = env_light->mWind.vec.y; + i_direction->z = env_light->mWind.vec.z; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1875,6 +2161,7 @@ asm void dKyw_get_AllWind_vec(cXyz* param_0, cXyz* param_1, f32* param_2) { #include "asm/d/kankyo/d_kankyo_wether/dKyw_get_AllWind_vec__FP4cXyzP4cXyzPf.s" } #pragma pop +#endif /* 8005B530-8005B60C 055E70 00DC+00 0/0 0/0 5/5 .text dKyw_get_AllWind_vecpow__FP4cXyz */ // matches with literals @@ -1926,5 +2213,3 @@ void dKyw_rain_set(int count) { g_env_light.mRainCount = count; g_env_light.mRainCountOrig = count; } - -/* 8037A368-8037A368 0069C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */