From 30016e973716119c90599b3b8d3f493d915189fe Mon Sep 17 00:00:00 2001 From: gymnast86 Date: Wed, 1 Oct 2025 05:49:09 -0700 Subject: [PATCH] match last function --- config/SOUE01/rels/d_a_obj_warp_holeNP/symbols.txt | 10 +++++----- configure.py | 2 +- include/d/d_player_act.h | 2 +- src/REL/d/a/obj/d_a_obj_warp_hole.cpp | 14 +++++++++----- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_warp_holeNP/symbols.txt b/config/SOUE01/rels/d_a_obj_warp_holeNP/symbols.txt index bd1b9747..a60ea418 100644 --- a/config/SOUE01/rels/d_a_obj_warp_holeNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_warp_holeNP/symbols.txt @@ -12,11 +12,11 @@ __dt__14dAcOwarpHole_cFv = .text:0x00000640; // type:function size:0x80 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global dummy600__14dAcOwarpHole_c = .rodata:0x00000000; // type:object size:0x4 data:float -@24817 = .rodata:0x00000004; // type:object size:0x4 align:4 data:float -@24840 = .rodata:0x00000008; // type:object size:0x10 align:4 data:float +@24817 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 data:float +@24840 = .rodata:0x00000008; // type:object size:0x10 scope:local align:4 data:float g_profile_OBJ_WARP_HOLE = .data:0x00000000; // type:object size:0x10 sCylSrc__14dAcOwarpHole_c = .data:0x00000010; // type:object size:0x30 -@24816 = .data:0x00000040; // type:object size:0x1C data:string -@24841 = .data:0x0000005C; // type:object size:0x19 align:4 data:string -@24908 = .data:0x00000078; // type:object size:0x1C align:8 data:string +@24816 = .data:0x00000040; // type:object size:0x1C scope:local data:string +@24841 = .data:0x0000005C; // type:object size:0x19 scope:local align:4 data:string +@24908 = .data:0x00000078; // type:object size:0x1C scope:local align:8 data:string __vt__14dAcOwarpHole_c = .data:0x00000098; // type:object size:0x80 diff --git a/configure.py b/configure.py index 4c8acef2..20c59ade 100644 --- a/configure.py +++ b/configure.py @@ -2825,7 +2825,7 @@ config.libs = [ Rel(NonMatching, "d_a_obj_vent_fan", "REL/d/a/obj/d_a_obj_vent_fan.cpp"), Rel(NonMatching, "d_a_obj_vortex", "REL/d/a/obj/d_a_obj_vortex.cpp"), Rel(NonMatching, "d_a_obj_warp", "REL/d/a/obj/d_a_obj_warp.cpp"), - Rel(NonMatching, "d_a_obj_warp_hole", "REL/d/a/obj/d_a_obj_warp_hole.cpp"), + Rel(Matching, "d_a_obj_warp_hole", "REL/d/a/obj/d_a_obj_warp_hole.cpp"), Rel( NonMatching, "d_a_obj_waterfall_D100", "REL/d/a/obj/d_a_obj_waterfall_D100.cpp" ), diff --git a/include/d/d_player_act.h b/include/d/d_player_act.h index 9437cb4a..c5096561 100644 --- a/include/d/d_player_act.h +++ b/include/d/d_player_act.h @@ -412,7 +412,7 @@ public: /* vt 0x2A8 */ virtual void lookTowardItem() {} /* vt 0x2AC */ virtual void vt_0x2AC() {} /* vt 0x2B0 */ virtual void vt_0x2B0() {} - /* vt 0x2B4 */ virtual void triggerMoveEventMaybe(u32, u32, u32, mVec3_c &, u16, u32, u32) {} + /* vt 0x2B4 */ virtual void triggerMoveEventMaybe(u32, u32, u32, mVec3_c &, const mAng&, u32, u32) {} /* vt 0x2B8 */ virtual void setActorRef9() {} /* vt 0x2BC */ virtual void unlinkActorRef9() {} /* vt 0x2C0 */ virtual bool vt_0x2C0() { diff --git a/src/REL/d/a/obj/d_a_obj_warp_hole.cpp b/src/REL/d/a/obj/d_a_obj_warp_hole.cpp index 183a64e4..5babbb42 100644 --- a/src/REL/d/a/obj/d_a_obj_warp_hole.cpp +++ b/src/REL/d/a/obj/d_a_obj_warp_hole.cpp @@ -63,6 +63,12 @@ int dAcOwarpHole_c::actorExecute() { return SUCCEEDED; } +// copy from d_a_obj_fairy - TODO move it to a shared file +inline static void vecCylCalc(mVec3_c &target, const mAng &rot, f32 factor) { + target.x += factor * rot.sin(); + target.z += factor * rot.cos(); +} + int dAcOwarpHole_c::actorExecuteInEvent() { mEff.createContinuousEffect(PARTICLE_RESOURCE_ID_MAPPING_914_, mWorldMtx, nullptr, nullptr); holdSound(SE_WarpH_Wait); @@ -77,11 +83,9 @@ int dAcOwarpHole_c::actorExecuteInEvent() { break; case 'plwk': if (advance) { - float multiplier330 = 330.0f; - mLinkPos = dAcPy_c::GetLinkM()->mPosition; - mAng targetAngleY = (mAng)cLib::targetAngleY(mPosition, dAcPy_c::GetLinkM()->getPosition()); - mLinkPos.x += multiplier330 * targetAngleY.sin(); - mLinkPos.z += multiplier330 * targetAngleY.cos(); + dAcPy_c *link = dAcPy_c::GetLinkM(); + mLinkPos = link->mPosition; + vecCylCalc(mLinkPos,cLib::targetAngleY(mPosition, link->mPosition), 330.0f); } if (EventManager::isInEvent()) { if (EventManager::isCurrentEvent("BeforeLastBossBattleChicken")) {