diff options
| author | Jasper St. Pierre <jstpierre@mecheye.net> | 2023-10-12 00:21:03 -0700 |
|---|---|---|
| committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2023-10-12 00:21:03 -0700 |
| commit | dcf916f84f40f0b8a8b91aa8d765afaebc24e988 (patch) | |
| tree | 4f3cab0484bee0af421a403f3591af9a104189e7 /src | |
| parent | 9d2e8e121bbc46fad80b86b062eb956ffbd415a0 (diff) | |
f_op_actor_mng nonmatch getWaterY
Diffstat (limited to 'src')
| -rw-r--r-- | src/f_op/f_op_actor_mng.cpp | 26 |
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 */ |
