summaryrefslogtreecommitdiff
path: root/src/d/d_cc_s.cpp
diff options
context:
space:
mode:
authorMax Roncace <me@caseif.net>2026-02-18 01:58:52 -0500
committerGitHub <noreply@github.com>2026-02-17 22:58:52 -0800
commita790efafc526f79a79fad38186335d222a215cb5 (patch)
tree963dadd351a6aebd60f4a87d03ef32fe3bd10762 /src/d/d_cc_s.cpp
parent34ea82dd28e74bb375d0ace2cf6aab94da9de569 (diff)
d_cursor_mng mostly matching (#3101)
Diffstat (limited to 'src/d/d_cc_s.cpp')
-rw-r--r--src/d/d_cc_s.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/d/d_cc_s.cpp b/src/d/d_cc_s.cpp
index f7e275dea4..ccb8501542 100644
--- a/src/d/d_cc_s.cpp
+++ b/src/d/d_cc_s.cpp
@@ -536,6 +536,48 @@ bool dCcS::ChkCamera(cXyz& param_0, cXyz& param_1, f32 param_2, fopAc_ac_c* para
return false;
}
+#if PLATFORM_WII
+BOOL dCcS::ChkLine(cXyz& i_p_start, cXyz& i_p_end, f32 i_radius, fopAc_ac_c** o_actor) {
+ u16 obj_co_count = mObjCoCount;
+ if (obj_co_count == 0) {
+ return 0;
+ }
+ cCcD_Obj** max_obj_pp = &mpObjCo[mObjCoCount];
+ cCcD_CpsAttr cps_attr;
+ cps_attr.Set(i_p_start, i_p_end, i_radius);
+ cps_attr.CalcAabBox();
+ *o_actor = NULL;
+ f32 z_max = -FLT_MAX;
+ cCcD_DivideInfo sp18;
+ mDivideArea.CalcDivideInfoOverArea(&sp18, cps_attr.mAab);
+ cCcD_Obj** obj_pp = mpObjCo;
+ while (obj_pp < max_obj_pp) {
+ cCcD_Obj* obj_p = *obj_pp;
+ if (obj_p->GetObjCo().getSPrm() & 1) {
+ fopAc_ac_c* temp_r31 = dComIfGp_getPlayer(0);
+ if (obj_p->GetAc() != temp_r31 && (*obj_pp)->GetDivideInfo().Chk(sp18) != 0) {
+ f32 sp8;
+ if ((*obj_pp)->GetShapeAttr()->CrossCo(cps_attr, &sp8) != 0) {
+ fopAc_ac_c* actor = (*obj_pp)->GetAc();
+ if (actor != NULL &&
+ actor->attention_info.flags & (fopAc_AttnFlag_LOCK_e | fopAc_AttnFlag_BATTLE_e)) {
+ Vec spC;
+ PSMTXMultVec(dComIfGd_getViewMtx(), &actor->current.pos, &spC);
+ if (spC.z < 0.0f && spC.z > z_max) {
+ *o_actor = actor;
+ z_max = spC.z;
+ }
+ }
+ }
+ }
+ }
+ obj_pp++;
+ }
+
+ return *o_actor != NULL;
+}
+#endif
+
bool dCcS::chkCameraPoint(cXyz const& param_0, cCcD_ShapeAttr::Shape* param_1, fopAc_ac_c* param_2,
fopAc_ac_c* param_3) {
if (mObjCoCount == 0) {