mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-12-24 14:52:21 -05:00
4d8098a6c2
* WIP * Rename * Fix * More WIP * WIP * WIP * Fix * Annotations * Add more annotations, improve match * Raise max functions
109 lines
2.3 KiB
C++
109 lines
2.3 KiB
C++
#ifndef LEGOPATHEDGECONTAINER_H
|
|
#define LEGOPATHEDGECONTAINER_H
|
|
|
|
#include "mxgeometry/mxgeometry3d.h"
|
|
#include "mxstl/stlcompat.h"
|
|
#include "mxtypes.h"
|
|
|
|
class LegoPathBoundary;
|
|
struct LegoPathCtrlEdge;
|
|
|
|
// SIZE 0x08
|
|
struct LegoBoundaryEdge {
|
|
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 {
|
|
c_bit1 = 0x01
|
|
};
|
|
|
|
// FUNCTION: BETA10 0x100118e0
|
|
LegoPathEdgeContainer()
|
|
{
|
|
m_boundary = NULL;
|
|
m_flags = 0;
|
|
}
|
|
|
|
// FUNCTION: BETA10 0x100bd660
|
|
void SetBit1(MxU32 p_set)
|
|
{
|
|
if (p_set) {
|
|
m_flags |= c_bit1;
|
|
}
|
|
else {
|
|
m_flags &= ~c_bit1;
|
|
}
|
|
}
|
|
|
|
// FUNCTION: BETA10 0x1001cb50
|
|
MxU32 GetBit1() { return m_flags & c_bit1; }
|
|
|
|
Mx3DPointFloat m_position; // 0x0c
|
|
Mx3DPointFloat m_direction; // 0x20
|
|
LegoPathBoundary* m_boundary; // 0x34
|
|
MxU8 m_flags; // 0x38
|
|
};
|
|
|
|
#endif // LEGOPATHEDGECONTAINER_H
|