mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-21 07:11:16 +00:00
More WIP
This commit is contained in:
parent
96a33e4c6b
commit
6da5b39430
@ -22,7 +22,9 @@ class Vector3;
|
||||
|
||||
// VTABLE: LEGO1 0x100d7da8
|
||||
// SIZE 0x40
|
||||
struct LegoPathCtrlEdge : public LegoUnknown100db7f4 {};
|
||||
struct LegoPathCtrlEdge : public LegoUnknown100db7f4 {
|
||||
undefined4 FUN_10048c40(const Vector3&);
|
||||
};
|
||||
|
||||
struct LegoPathCtrlEdgeCompare {
|
||||
MxU32 operator()(const LegoPathCtrlEdge* p_lhs, const LegoPathCtrlEdge* p_rhs) const
|
||||
|
||||
@ -7,20 +7,19 @@
|
||||
|
||||
class LegoPathBoundary;
|
||||
struct LegoPathCtrlEdge;
|
||||
struct LegoUnknown100db7f4;
|
||||
|
||||
// SIZE 0x08
|
||||
struct LegoBoundaryEdge {
|
||||
LegoBoundaryEdge() {}
|
||||
|
||||
// FUNCTION: BETA10 0x100bd620
|
||||
LegoBoundaryEdge(LegoUnknown100db7f4* p_edge, LegoPathBoundary* p_boundary)
|
||||
LegoBoundaryEdge(LegoPathCtrlEdge* p_edge, LegoPathBoundary* p_boundary)
|
||||
{
|
||||
m_edge = p_edge;
|
||||
m_boundary = p_boundary;
|
||||
}
|
||||
|
||||
LegoUnknown100db7f4* m_edge; // 0x00
|
||||
LegoPathCtrlEdge* m_edge; // 0x00
|
||||
LegoPathBoundary* m_boundary; // 0x04
|
||||
|
||||
int operator==(LegoBoundaryEdge) const { return 0; }
|
||||
|
||||
@ -820,7 +820,21 @@ MxResult LegoPathController::FUN_10048310(
|
||||
|
||||
if (e->Unknown(*bOther, p_mask)) {
|
||||
if (bOther == p_newBoundary) {
|
||||
// TODO
|
||||
shouldRemove = FALSE;
|
||||
|
||||
LegoBoundaryEdgeWithFloat* pfs = *boundarySetItA;
|
||||
assert(pfs);
|
||||
|
||||
float dist = pfs->m_edge->DistanceToMidpoint(p_newPosition) + pfs->m_unk0x0c;
|
||||
|
||||
if (dist < local70) {
|
||||
local70 = dist;
|
||||
edgeWithFloat.m_edge = NULL;
|
||||
|
||||
if (dist < local14) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// TODO
|
||||
@ -853,12 +867,42 @@ MxResult LegoPathController::FUN_10048310(
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
// TODO
|
||||
if (p_grec->size() != 0) {
|
||||
LegoPathCtrlEdge* edge = p_grec->front().m_edge;
|
||||
|
||||
if (edge->FUN_10048c40(p_oldPosition)) {
|
||||
p_grec->pop_front();
|
||||
}
|
||||
}
|
||||
|
||||
if (p_grec->size() != 0) {
|
||||
LegoPathCtrlEdge* edge = p_grec->back().m_edge;
|
||||
|
||||
if (edge->FUN_10048c40(p_newPosition)) {
|
||||
if (edge->OtherFace(p_grec->back().m_boundary) != NULL &&
|
||||
edge->OtherFace(p_grec->back().m_boundary)->IsEqual(*p_newBoundary)) {
|
||||
p_grec->m_boundary = p_grec->back().m_boundary;
|
||||
p_grec->pop_back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (p_param9 != NULL) {
|
||||
*p_param9 = local14;
|
||||
}
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10048c40
|
||||
// STUB: BETA10 0x1001cc90
|
||||
undefined4 LegoPathCtrlEdge::FUN_10048c40(const Vector3&)
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004a240
|
||||
// FUNCTION: BETA10 0x100b9160
|
||||
MxS32 LegoPathController::FUN_1004a240(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user