mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-24 08:54:15 +00:00
Implement LegoPathController::FUN_10048310 (#1192)
* WIP * Rename * Fix * More WIP * WIP * WIP * Fix * Annotations * Add more annotations, improve match * Raise max functions
This commit is contained in:
committed by
GitHub
parent
6ca54824e6
commit
4d8098a6c2
@@ -6,17 +6,73 @@
|
||||
#include "mxtypes.h"
|
||||
|
||||
class LegoPathBoundary;
|
||||
struct LegoUnknown100db7f4;
|
||||
struct LegoPathCtrlEdge;
|
||||
|
||||
// SIZE 0x08
|
||||
struct LegoBoundaryEdge {
|
||||
LegoUnknown100db7f4* m_edge; // 0x00
|
||||
LegoBoundaryEdge() {}
|
||||
|
||||
// FUNCTION: BETA10 0x100bd620
|
||||
LegoBoundaryEdge(LegoPathCtrlEdge* p_edge, LegoPathBoundary* p_boundary)
|
||||
{
|
||||
m_edge = p_edge;
|
||||
m_boundary = p_boundary;
|
||||
}
|
||||
|
||||
LegoPathCtrlEdge* m_edge; // 0x00
|
||||
LegoPathBoundary* m_boundary; // 0x04
|
||||
|
||||
int operator==(LegoBoundaryEdge) const { return 0; }
|
||||
int operator<(LegoBoundaryEdge) const { return 0; }
|
||||
};
|
||||
|
||||
// SIZE 0x10
|
||||
struct LegoBEWithFloat {
|
||||
LegoBEWithFloat()
|
||||
{
|
||||
m_edge = NULL;
|
||||
m_boundary = NULL;
|
||||
m_next = NULL;
|
||||
m_unk0x0c = 0.0f;
|
||||
}
|
||||
|
||||
// FUNCTION: BETA10 0x100bd9a0
|
||||
LegoBEWithFloat(LegoPathCtrlEdge* p_edge, LegoPathBoundary* p_boundary, MxFloat p_unk0x0c)
|
||||
{
|
||||
m_edge = p_edge;
|
||||
m_boundary = p_boundary;
|
||||
m_next = NULL;
|
||||
m_unk0x0c = p_unk0x0c;
|
||||
}
|
||||
|
||||
// FUNCTION: BETA10 0x100bd9f0
|
||||
LegoBEWithFloat(LegoPathCtrlEdge* p_edge, LegoPathBoundary* p_boundary, LegoBEWithFloat* p_next, MxFloat p_unk0x0c)
|
||||
{
|
||||
m_edge = p_edge;
|
||||
m_boundary = p_boundary;
|
||||
m_next = p_next;
|
||||
m_unk0x0c = p_unk0x0c;
|
||||
}
|
||||
|
||||
LegoPathCtrlEdge* m_edge; // 0x00
|
||||
LegoPathBoundary* m_boundary; // 0x04
|
||||
LegoBEWithFloat* m_next; // 0x08
|
||||
MxFloat m_unk0x0c; // 0x0c
|
||||
|
||||
int operator==(LegoBEWithFloat) const { return 0; }
|
||||
int operator<(LegoBEWithFloat) const { return 0; }
|
||||
};
|
||||
|
||||
struct LegoBEWithFloatComparator {
|
||||
// FUNCTION: BETA10 0x100bef80
|
||||
bool operator()(LegoBEWithFloat* const& p_a, LegoBEWithFloat* const& p_b) const
|
||||
{
|
||||
return p_a->m_unk0x0c < p_b->m_unk0x0c;
|
||||
}
|
||||
};
|
||||
|
||||
typedef multiset<LegoBEWithFloat*, LegoBEWithFloatComparator> LegoBEWithFloatSet;
|
||||
|
||||
// SIZE 0x3c
|
||||
struct LegoPathEdgeContainer : public list<LegoBoundaryEdge> {
|
||||
enum {
|
||||
@@ -30,9 +86,10 @@ struct LegoPathEdgeContainer : public list<LegoBoundaryEdge> {
|
||||
m_flags = 0;
|
||||
}
|
||||
|
||||
void SetBit1(MxU32 p_flag)
|
||||
// FUNCTION: BETA10 0x100bd660
|
||||
void SetBit1(MxU32 p_set)
|
||||
{
|
||||
if (p_flag) {
|
||||
if (p_set) {
|
||||
m_flags |= c_bit1;
|
||||
}
|
||||
else {
|
||||
@@ -40,10 +97,11 @@ struct LegoPathEdgeContainer : public list<LegoBoundaryEdge> {
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: BETA10 0x1001cb50
|
||||
MxU32 GetBit1() { return m_flags & c_bit1; }
|
||||
|
||||
Mx3DPointFloat m_unk0x0c; // 0x0c
|
||||
Mx3DPointFloat m_unk0x20; // 0x20
|
||||
Mx3DPointFloat m_position; // 0x0c
|
||||
Mx3DPointFloat m_direction; // 0x20
|
||||
LegoPathBoundary* m_boundary; // 0x34
|
||||
MxU8 m_flags; // 0x38
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user