mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Implement LegoPathActor::VTable0x88 (#787)
* Implement LegoPathActor::VTable0x88 * Implement FUN_1002ddc0 * Fixes and match * refac --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#ifndef __LEGOEDGE_H
|
||||
#define __LEGOEDGE_H
|
||||
|
||||
#include "misc/legotypes.h"
|
||||
#include "realtime/vector.h"
|
||||
|
||||
class LegoWEEdge;
|
||||
@@ -16,6 +17,8 @@ struct LegoEdge {
|
||||
Vector3* GetOpposingPoint(LegoWEEdge* face);
|
||||
Vector3* GetPoint(LegoWEEdge* face);
|
||||
|
||||
LegoResult FUN_1002ddc0(LegoWEEdge* p_face, Vector3& p_point);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1009a4a0
|
||||
// LegoEdge::`scalar deleting destructor'
|
||||
|
||||
|
3
LEGO1/lego/sources/geom/legounkown100db7f4.cpp
Normal file
3
LEGO1/lego/sources/geom/legounkown100db7f4.cpp
Normal file
@@ -0,0 +1,3 @@
|
||||
#include "legounkown100db7f4.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoUnknown100db7f4, 0x40)
|
33
LEGO1/lego/sources/geom/legounkown100db7f4.h
Normal file
33
LEGO1/lego/sources/geom/legounkown100db7f4.h
Normal file
@@ -0,0 +1,33 @@
|
||||
#ifndef __LEGOUNKNOWN100DB7F4_H
|
||||
#define __LEGOUNKNOWN100DB7F4_H
|
||||
|
||||
#include "legoedge.h"
|
||||
#include "legoweedge.h"
|
||||
#include "mxgeometry/mxgeometry3d.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100db7f4
|
||||
// SIZE 0x40
|
||||
class LegoUnknown100db7f4 : public LegoEdge {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1002ddc0
|
||||
LegoResult FUN_1002ddc0(LegoWEEdge& p_f, Vector3& p_point)
|
||||
{
|
||||
if (p_f.IsEqual(*m_faceA)) {
|
||||
p_point[0] = -m_unk0x28[0];
|
||||
p_point[1] = -m_unk0x28[1];
|
||||
p_point[2] = -m_unk0x28[2];
|
||||
}
|
||||
else {
|
||||
p_point = m_unk0x28;
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
private:
|
||||
LegoU16 m_unk0x24; // 0x24
|
||||
Mx3DPointFloat m_unk0x28; // 0x28
|
||||
LegoU32 m_unk0x3c; // 0x3c
|
||||
};
|
||||
|
||||
#endif // __LEGOUNKNOWN100DB7F4_H
|
@@ -15,6 +15,7 @@ public:
|
||||
virtual LegoResult VTable0x04(); // vtable+0x04
|
||||
|
||||
inline LegoU8 GetNumEdges() { return m_numEdges; }
|
||||
inline LegoU32 IsEqual(LegoWEEdge& p_other) { return this == &p_other; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1009a570
|
||||
// LegoWEEdge::`scalar deleting destructor'
|
||||
|
@@ -15,6 +15,7 @@ public:
|
||||
LegoResult VTable0x04() override; // vtable+0x04
|
||||
|
||||
inline LegoU32 GetFlag0x10() { return m_unk0x0c & 0x10 ? FALSE : TRUE; }
|
||||
inline Mx4DPointFloat* GetUnknown0x14() { return &m_unk0x14; }
|
||||
inline Mx4DPointFloat* GetEdgeNormal(int index) { return &m_edgeNormals[index]; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1009a7e0
|
||||
|
Reference in New Issue
Block a user