Implement LegoCarBuildAnimPresenter::StreamingTickle() (#1109)

* Implement LegoCarBuildAnimPresenter::StreamingTickle and dependents

* Fix naming issue

* Address review comment

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
jonschz
2024-10-06 01:20:45 +02:00
committed by GitHub
parent e6474b7fcd
commit 1a15981324
20 changed files with 216 additions and 15 deletions

View File

@@ -97,6 +97,7 @@ double Lego3DManager::Render(double p_und)
}
// FUNCTION: LEGO1 0x100ab4d0
// FUNCTION: BETA10 0x1017baeb
int Lego3DManager::SetFrustrum(float p_fov, float p_front, float p_back)
{
m_pLego3DView->GetView()->SetFrustrum(p_front, p_back, p_fov);

View File

@@ -119,6 +119,7 @@ BOOL Lego3DView::SetPointOfView(ViewROI& rROI)
}
// FUNCTION: LEGO1 0x100ab210
// FUNCTION: BETA10 0x1017d230
BOOL Lego3DView::Moved(ViewROI& rROI)
{
assert(m_pViewManager);

View File

@@ -148,7 +148,9 @@ public:
LegoResult CreateLocalTransform(LegoFloat p_time, Matrix4& p_matrix);
LegoBool FUN_100a0990(LegoFloat p_time);
// FUNCTION: BETA10 0x100595d0
const LegoChar* GetName() { return m_name; }
LegoU32 GetTranslationIndex() { return m_translationIndex; }
LegoU32 GetRotationIndex() { return m_rotationIndex; }
LegoU32 GetScaleIndex() { return m_scaleIndex; }
@@ -164,6 +166,8 @@ public:
void SetScaleIndex(LegoU32 p_scaleIndex) { m_scaleIndex = p_scaleIndex; }
void SetMorphIndex(LegoU32 p_morphIndex) { m_morphIndex = p_morphIndex; }
void SetUnknown0x20(LegoU16 p_unk0x20) { m_unk0x20 = p_unk0x20; }
// FUNCTION: BETA10 0x1005f2e0
void SetUnknown0x22(LegoU16 p_unk0x22) { m_unk0x22 = p_unk0x22; }
LegoResult CreateLocalTransform(LegoTime p_time, Matrix4& p_matrix)

View File

@@ -32,14 +32,21 @@ class LegoTreeNode {
public:
LegoTreeNode();
virtual ~LegoTreeNode();
// FUNCTION: BETA10 0x100595a0
LegoTreeNodeData* GetData() { return m_data; }
void SetData(LegoTreeNodeData* p_data) { m_data = p_data; }
// FUNCTION: BETA10 0x10012150
LegoU32 GetNumChildren() { return m_numChildren; }
// FUNCTION: BETA10 0x10073370
void SetNumChildren(LegoU32 p_numChildren) { m_numChildren = p_numChildren; }
// FUNCTION: BETA10 0x10012180
LegoTreeNode* GetChild(LegoU32 p_i) { return m_children[p_i]; }
void SetChild(LegoU32 p_i, LegoTreeNode* p_child) { m_children[p_i] = p_child; }
// FUNCTION: BETA10 0x100733a0

View File

@@ -341,6 +341,7 @@ LegoResult LegoROI::FUN_100a8cb0(LegoAnimNodeData* p_data, LegoTime p_time, Matr
}
// FUNCTION: LEGO1 0x100a8ce0
// FUNCTION: BETA10 0x1018a815
LegoROI* LegoROI::FindChildROI(const LegoChar* p_name, LegoROI* p_roi)
{
CompoundObject::iterator it;
@@ -551,6 +552,18 @@ LegoResult LegoROI::GetTexture(LegoTextureInfo*& p_textureInfo)
return FAILURE;
}
// FUNCTION: LEGO1 0x100a9350
// FUNCTION: BETA10 0x1018b25c
LegoResult LegoROI::FUN_100a9350(const LegoChar* p_color)
{
MxFloat red, green, blue, alpha;
if (ColorAliasLookup(p_color, red, green, blue, alpha)) {
return FUN_100a9170(red, green, blue, alpha);
}
return SUCCESS;
}
// FUNCTION: LEGO1 0x100a9410
// FUNCTION: BETA10 0x1018b324
LegoU32 LegoROI::FUN_100a9410(
@@ -778,6 +791,13 @@ void LegoROI::SetName(const LegoChar* p_name)
}
}
// STUB: LEGO1 0x100a9dd0
// STUB: BETA10 0x1018bfdb
void LegoROI::FUN_100a9dd0()
{
// TODO
}
// FUNCTION: LEGO1 0x100a9e10
void LegoROI::SetDisplayBB(int p_displayBB)
{

View File

@@ -38,12 +38,14 @@ public:
LegoResult FUN_100a9170(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult FUN_100a9210(LegoTextureInfo* p_textureInfo);
LegoResult GetTexture(LegoTextureInfo*& p_textureInfo);
LegoResult FUN_100a9350(const LegoChar* p_color);
LegoU32 FUN_100a9410(Vector3& p_v1, Vector3& p_v2, float p_f1, float p_f2, Vector3& p_v3, LegoBool p_collideBox);
void SetName(const LegoChar* p_name);
float IntrinsicImportance() const override; // vtable+0x04
void UpdateWorldBoundingVolumes() override; // vtable+0x18
void FUN_100a9dd0();
void SetDisplayBB(int p_displayBB);
static LegoResult FUN_100a8cb0(LegoAnimNodeData* p_data, LegoTime p_time, Matrix4& p_matrix);