From 3ad60c1b175cc0d8bec4527cacc113e71bcc5da1 Mon Sep 17 00:00:00 2001 From: Caroline Madsen <69010899+randomsalience@users.noreply.github.com> Date: Wed, 12 Mar 2025 18:57:14 -0400 Subject: [PATCH] f_op_actor_mng matching (#2325) --- configure.py | 2 +- include/f_op/f_op_actor_mng.h | 2 +- include/m_Do/m_Do_lib.h | 2 +- src/f_op/f_op_actor_mng.cpp | 20 ++++---------------- 4 files changed, 7 insertions(+), 19 deletions(-) diff --git a/configure.py b/configure.py index f1aa4bce2ba..a27848faf7d 100755 --- a/configure.py +++ b/configure.py @@ -429,7 +429,7 @@ config.libs = [ Object(MatchingFor("GZ2E01"), "f_op/f_op_actor.cpp", extra_cflags=['-pragma "nosyminline on"']), Object(MatchingFor("GZ2E01"), "f_op/f_op_actor_iter.cpp"), Object(MatchingFor("GZ2E01"), "f_op/f_op_actor_tag.cpp"), - Object(NonMatching, "f_op/f_op_actor_mng.cpp", extra_cflags=['-pragma "nosyminline on"']), + Object(MatchingFor("GZ2E01"), "f_op/f_op_actor_mng.cpp", extra_cflags=['-pragma "nosyminline on"']), Object(MatchingFor("GZ2E01"), "f_op/f_op_camera.cpp"), Object(MatchingFor("GZ2E01"), "f_op/f_op_camera_mng.cpp"), Object(MatchingFor("GZ2E01"), "f_op/f_op_overlap.cpp"), diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 9f7dc431b42..b36ed828a88 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -379,7 +379,7 @@ inline BOOL fopAcM_CULLSIZE_IS_BOX(int i_culltype) { return (i_culltype >= 0 && i_culltype < 14) || i_culltype == 14; } -inline const Vec& fopAcM_getCullSizeSphereCenter(const fopAc_ac_c* i_actor) { +inline const cXyz& fopAcM_getCullSizeSphereCenter(const fopAc_ac_c* i_actor) { return i_actor->cull.sphere.center; } diff --git a/include/m_Do/m_Do_lib.h b/include/m_Do/m_Do_lib.h index a13ee4357fa..b5f8983fced 100644 --- a/include/m_Do/m_Do_lib.h +++ b/include/m_Do/m_Do_lib.h @@ -20,7 +20,7 @@ struct mDoLib_clipper { return mClipper.clip(m, (Vec*)param_1, (Vec*)param_2); } - static int clip(const Mtx m, Vec param_1, f32 param_2) { + static s32 clip(const Mtx m, Vec param_1, f32 param_2) { return mClipper.clip(m, param_1, param_2); } diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index 8d5dd66e521..6107406c104 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -776,25 +776,13 @@ s32 fopAcM_cullingCheck(fopAc_ac_c const* i_actor) { if (fopAcM_GetCullSize(i_actor) == 23) { if (fopAcM_getCullSizeFar(i_actor) > 0.0f) { mDoLib_clipper::changeFar(cullsize_far * mDoLib_clipper::getFar()); - - f32 radius = fopAcM_getCullSizeSphereR(i_actor); - const Vec& center_p = fopAcM_getCullSizeSphereCenter(i_actor); - Vec center; - center.x = center_p.x; - center.y = center_p.y; - center.z = center_p.z; - - u32 ret = mDoLib_clipper::clip(mtx_p, center, radius); + u32 ret = mDoLib_clipper::clip(mtx_p, fopAcM_getCullSizeSphereCenter(i_actor), + fopAcM_getCullSizeSphereR(i_actor)); mDoLib_clipper::resetFar(); return ret; } else { - f32 radius = fopAcM_getCullSizeSphereR(i_actor); - const Vec& center_p = fopAcM_getCullSizeSphereCenter(i_actor); - Vec center; - center.x = center_p.x; - center.y = center_p.y; - center.z = center_p.z; - return mDoLib_clipper::clip(mtx_p, center, radius); + return mDoLib_clipper::clip(mtx_p, fopAcM_getCullSizeSphereCenter(i_actor), + fopAcM_getCullSizeSphereR(i_actor)); } } else { cull_sphere* sphere = &l_cullSizeSphere[cullsize - 15];