mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-26 01:44:19 +00:00 
			
		
		
		
	 4d8098a6c2
			
		
	
	4d8098a6c2
	
	
	
		
			
			* WIP * Rename * Fix * More WIP * WIP * WIP * Fix * Annotations * Add more annotations, improve match * Raise max functions
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			110 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
 |