diff options
| author | Jasper St. Pierre <jstpierre@mecheye.net> | 2024-07-24 20:19:55 -0700 |
|---|---|---|
| committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2024-07-24 20:20:21 -0700 |
| commit | 45e0bb21211d0582f8d3903340a4ec8b9857bb80 (patch) | |
| tree | 1ba0be2d45d12b7c8d6d3c5906cd75b6c768259b /src/d/d_lib.cpp | |
| parent | b45ba251238fdd56d31da1d95645d9beb222c435 (diff) | |
d_lib work
Diffstat (limited to 'src/d/d_lib.cpp')
| -rw-r--r-- | src/d/d_lib.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp index dfc9e719..9407bbee 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -6,6 +6,7 @@ #include "d/d_lib.h" #include "d/d_com_inf_game.h" #include "d/d_s_play.h" +#include "d/d_a_obj.h" #include "d/actor/d_a_sea.h" #include "m_Do/m_Do_mtx.h" #include "m_Do/m_Do_controller_pad.h" @@ -495,12 +496,19 @@ u32 dLib_getIplDaysFromSaveTime() { } /* 80058834-80058910 .text dLib_get_QuatFromTriangle__FP4cXyzP4cXyzP4cXyz */ -Quaternion dLib_get_QuatFromTriangle(cXyz*, cXyz*, cXyz*) { - /* Nonmatching */ +Quaternion dLib_get_QuatFromTriangle(cXyz* p0, cXyz* p1, cXyz* p2) { + Quaternion out; + cXyz e1 = *p1 - *p0; + cXyz e2 = *p2 - *p0; + cXyz cross = e1.outprod(e2); + daObj::quat_rotBaseY2(&out, cross); + return out; } /* 80058910-800589A8 .text dLib_calc_QuatFromTriangle__FP10QuaternionfP4cXyzP4cXyzP4cXyz */ -void dLib_calc_QuatFromTriangle(Quaternion*, f32, cXyz*, cXyz*, cXyz*) { - /* Nonmatching */ +void dLib_calc_QuatFromTriangle(Quaternion* out, f32 t, cXyz* p0, cXyz* p1, cXyz* p2) { + Quaternion q = dLib_get_QuatFromTriangle(p0, p1, p2); + Quaternion d; + C_QUATSlerp(out, &q, &d, t); + *out = d; } - |
