mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-25 09:24:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef __LEGOWEGEDGE_H
 | |
| #define __LEGOWEGEDGE_H
 | |
| 
 | |
| #include "decomp.h"
 | |
| #include "legoweedge.h"
 | |
| #include "mxgeometry/mxgeometry3d.h"
 | |
| 
 | |
| class LegoPathStruct;
 | |
| 
 | |
| // might be a struct with public members
 | |
| // VTABLE: LEGO1 0x100db7f8
 | |
| // SIZE 0x54
 | |
| class LegoWEGEdge : public LegoWEEdge {
 | |
| public:
 | |
| 	enum {
 | |
| 		c_bit1 = 0x01,
 | |
| 		c_bit2 = 0x02,
 | |
| 		c_bit3 = 0x04,
 | |
| 		c_bit5 = 0x10
 | |
| 	};
 | |
| 
 | |
| 	// SIZE 0x0c
 | |
| 	struct PathWithTrigger {
 | |
| 		// FUNCTION: LEGO1 0x10048280
 | |
| 		// FUNCTION: BETA10 0x100bd450
 | |
| 		PathWithTrigger()
 | |
| 		{
 | |
| 			m_pathStruct = NULL;
 | |
| 			m_data = 0;
 | |
| 			m_unk0x08 = 0.0f;
 | |
| 		}
 | |
| 
 | |
| 		LegoPathStruct* m_pathStruct; // 0x00
 | |
| 		unsigned int m_data;          // 0x04
 | |
| 		float m_unk0x08;              // 0x08
 | |
| 	};
 | |
| 
 | |
| 	LegoWEGEdge();
 | |
| 	~LegoWEGEdge() override;
 | |
| 
 | |
| 	LegoResult VTable0x04() override; // vtable+0x04
 | |
| 
 | |
| 	inline LegoU32 GetFlag0x10() { return m_flags & c_bit5 ? FALSE : TRUE; }
 | |
| 	inline Mx4DPointFloat* GetUnknown0x14() { return &m_unk0x14; }
 | |
| 	inline Mx4DPointFloat* GetEdgeNormal(int index) { return &m_edgeNormals[index]; }
 | |
| 	inline LegoChar* GetName() { return m_name; }
 | |
| 
 | |
| 	inline void SetFlag0x10(LegoU32 p_disable)
 | |
| 	{
 | |
| 		if (p_disable) {
 | |
| 			m_flags &= ~c_bit5;
 | |
| 		}
 | |
| 		else {
 | |
| 			m_flags |= c_bit5;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	inline LegoU8 GetMask0x03() { return m_flags & (c_bit1 | c_bit2); }
 | |
| 
 | |
| 	// SYNTHETIC: LEGO1 0x1009a7e0
 | |
| 	// LegoWEGEdge::`scalar deleting destructor'
 | |
| 
 | |
| 	friend class LegoPathController;
 | |
| 
 | |
| protected:
 | |
| 	LegoU8 m_flags;                 // 0x0c
 | |
| 	LegoU8 m_unk0x0d;               // 0x0d
 | |
| 	LegoChar* m_name;               // 0x10
 | |
| 	Mx4DPointFloat m_unk0x14;       // 0x14
 | |
| 	Mx4DPointFloat* m_edgeNormals;  // 0x2c
 | |
| 	Mx3DPointFloat m_unk0x30;       // 0x30
 | |
| 	float m_unk0x44;                // 0x44
 | |
| 	LegoU8 m_unk0x48;               // 0x48
 | |
| 	PathWithTrigger* m_pathTrigger; // 0x4c
 | |
| 	Mx3DPointFloat* m_unk0x50;      // 0x50
 | |
| };
 | |
| 
 | |
| #endif // __LEGOWEGEDGE_H
 | 
