Implement/match LegoPathController::FUN_1004a380 (#1226)

This commit is contained in:
Christian Semmler
2024-12-14 12:02:48 -07:00
committed by GitHub
parent 413bd5ae7b
commit 67b4553eaa
4 changed files with 131 additions and 25 deletions

View File

@@ -130,7 +130,7 @@ public:
LegoUnknown100db7f4*& p_edge,
LegoPathBoundary*& p_boundary
);
undefined4 FUN_1004a380(
MxResult FUN_1004a380(
Vector3& p_param1,
Vector3& p_param2,
Mx3DPointFloat* p_param3,
@@ -160,6 +160,31 @@ private:
static MxResult ReadVector(LegoStorage* p_storage, Mx3DPointFloat& p_vec);
static MxResult ReadVector(LegoStorage* p_storage, Mx4DPointFloat& p_vec);
// FUNCTION: BETA10 0x100c16f0
static MxU32 IsBetween(MxFloat p_v, MxFloat p_a, MxFloat p_b)
{
if (p_a <= p_b) {
return p_v >= p_a && p_v <= p_b;
}
else {
return p_v <= p_a && p_v >= p_b;
}
}
// FUNCTION: BETA10 0x100c17a0
static MxU32 FUN_100c17a0(MxFloat p_v1, MxFloat p_v2, MxFloat p_a, MxFloat p_b)
{
assert(IsBetween(p_v1, p_a, p_b));
assert(IsBetween(p_v2, p_a, p_b));
if (p_a <= p_b) {
return p_v1 < p_v2;
}
else {
return p_v1 > p_v2;
}
}
LegoPathBoundary* m_boundaries; // 0x08
LegoPathCtrlEdge* m_edges; // 0x0c
Mx3DPointFloat* m_unk0x10; // 0x10