summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2023-10-12 00:21:03 -0700
committerJasper St. Pierre <jstpierre@mecheye.net>2023-10-12 00:21:03 -0700
commitdcf916f84f40f0b8a8b91aa8d765afaebc24e988 (patch)
tree4f3cab0484bee0af421a403f3591af9a104189e7 /src
parent9d2e8e121bbc46fad80b86b062eb956ffbd415a0 (diff)
f_op_actor_mng nonmatch getWaterY
Diffstat (limited to 'src')
-rw-r--r--src/f_op/f_op_actor_mng.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp
index f9a26722..e0b7fb9b 100644
--- a/src/f_op/f_op_actor_mng.cpp
+++ b/src/f_op/f_op_actor_mng.cpp
@@ -15,6 +15,7 @@
#include "d/actor/d_a_player.h"
#include "d/actor/d_a_player_link.h"
#include "d/actor/d_a_item.h"
+#include "d/actor/d_a_sea.h"
#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_lib.h"
#include "m_Do/m_Do_printf.h"
@@ -1065,8 +1066,31 @@ fopAc_ac_c* fopAcM_searchFromName(char* pProcName, u32 paramMask, u32 parameter)
}
/* 80028448-80028560 .text fopAcM_getWaterY__FPC4cXyzPf */
-s32 fopAcM_getWaterY(const cXyz*, float*) {
+s32 fopAcM_getWaterY(const cXyz* pPos, float* pDstWaterY) {
/* Nonmatching */
+ static dBgS_WtrChk water_check;
+ s32 ret = 0;
+
+ *pDstWaterY = -1e09;
+
+ cXyz pos = *pPos;
+ pos.y -= 500.0f;
+ water_check.Set(pos, pos.y + 1000.0f);
+
+ bool hit = dComIfG_Bgsp()->SplGrpChk(&water_check);
+ if (hit) {
+ *pDstWaterY = water_check.GetHeight();
+ ret = 1;
+ }
+
+ if (daSea_ChkArea(pos.x, pos.z)) {
+ f32 waveY = daSea_calcWave(pos.x, pos.z);
+ if (waveY > *pDstWaterY)
+ *pDstWaterY = waveY;
+ ret = 1;
+ }
+
+ return ret;
}
/* 80028684-80028724 .text fopAcM_setGbaName__FP10fopAc_ac_cUcUcUc */