Implement FUN_1002ddc0

This commit is contained in:
Nathan 2024-04-10 08:17:03 -04:00
parent ca6456a6cd
commit 1b58843aa5
6 changed files with 39 additions and 10 deletions

View File

@ -150,9 +150,11 @@ add_library(geom STATIC
LEGO1/lego/sources/geom/legoedge.cpp
LEGO1/lego/sources/geom/legomesh.cpp
LEGO1/lego/sources/geom/legosphere.cpp
LEGO1/lego/sources/geom/legounkown100db7f4.cpp
LEGO1/lego/sources/geom/legovertex.cpp
LEGO1/lego/sources/geom/legoweedge.cpp
LEGO1/lego/sources/geom/legowegedge.cpp
)
register_lego1_target(geom)
set_property(TARGET geom PROPERTY ARCHIVE_OUTPUT_NAME "geom$<$<CONFIG:Debug>:d>")

View File

@ -1,6 +1,7 @@
#ifndef LEGOPATHACTOR_H
#define LEGOPATHACTOR_H
#include "geom/legounkown100db7f4.h"
#include "legoactor.h"
#include "legopathboundary.h"
#include "misc/legounknown.h"
@ -53,7 +54,7 @@ class LegoPathActor : public LegoActor {
float p_time,
LegoEdge& p_edge1,
float p_scale1,
LegoEdge& p_edge2,
LegoUnknown100db7f4& p_edge2,
float p_scale2
); // vtable+0x88
virtual void VTable0x8c(); // vtable+0x8c

View File

@ -58,7 +58,7 @@ MxResult LegoPathActor::VTable0x88(
float p_time,
LegoEdge& p_srcEdge,
float p_srcScale,
LegoEdge& p_dstEdge,
LegoUnknown100db7f4& p_dstEdge,
float p_dstScale
)
{

View File

@ -4,14 +4,6 @@
DECOMP_SIZE_ASSERT(LegoEdge, 0x24)
// TODO Based on the offset, this should be in the header, but as a stub it's getting inlined when there...
// STUB: LEGO1 0x1002ddc0
LegoResult LegoEdge::FUN_1002ddc0(LegoWEEdge* p_face, Vector3& p_point)
{
// TODO
return SUCCESS;
}
// FUNCTION: LEGO1 0x1009a470
LegoEdge::LegoEdge()
{

View File

@ -0,0 +1,3 @@
#include "legounkown100db7f4.h"
DECOMP_SIZE_ASSERT(LegoUnknown100db7f4, 0x40)

View File

@ -0,0 +1,31 @@
#ifndef __LEGOUNKNOWN100DB7F4_H
#define __LEGOUNKNOWN100DB7F4_H
#include "legoedge.h"
#include "mxgeometry/mxgeometry3d.h"
// VTABLE: LEGO1 0x100db7f4
// SIZE 0x40
class LegoUnknown100db7f4 : public LegoEdge {
public:
// FUNCTION: LEGO1 0x1002ddc0
LegoResult FUN_1002ddc0(LegoWEEdge* p_face, Vector3& p_point)
{
if (p_face == 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