More LegoLOD matches

This commit is contained in:
jonschz 2026-01-02 15:55:32 +01:00
parent e4cff164b8
commit 2471d0ca2c
2 changed files with 18 additions and 0 deletions

View File

@ -69,6 +69,7 @@ LegoLOD::~LegoLOD()
}
// FUNCTION: LEGO1 0x100aa510
// STUB: BETA10 0x1018d15d
LegoResult LegoLOD::Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_textureContainer, LegoStorage* p_storage)
{
float(*normals)[3] = NULL;
@ -319,6 +320,7 @@ LegoResult LegoLOD::Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_text
}
// FUNCTION: LEGO1 0x100aabb0
// FUNCTION: BETA10 0x1018e02a
LegoLOD* LegoLOD::Clone(Tgl::Renderer* p_renderer)
{
LegoLOD* dupLod = new LegoLOD(p_renderer);
@ -326,6 +328,8 @@ LegoLOD* LegoLOD::Clone(Tgl::Renderer* p_renderer)
dupLod->m_meshBuilder = m_meshBuilder->Clone();
dupLod->m_melems = new Mesh[m_numMeshes];
assert(dupLod->m_melems);
for (LegoU32 i = 0; i < m_numMeshes; i++) {
dupLod->m_melems[i].m_tglMesh = m_melems[i].m_tglMesh->ShallowClone(dupLod->m_meshBuilder);
dupLod->m_melems[i].m_textured = m_melems[i].m_textured;
@ -353,11 +357,22 @@ LegoResult LegoLOD::SetColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blu
}
// FUNCTION: LEGO1 0x100aad00
// FUNCTION: BETA10 0x1018e241
LegoResult LegoLOD::SetTextureInfo(LegoTextureInfo* p_textureInfo)
{
using Tgl::Succeeded;
for (LegoU32 i = m_meshOffset; i < m_numMeshes; i++) {
if (m_melems[i].m_textured) {
#ifdef BETA10
// This function likely had a different signature in BETA10
Tgl::Result tglResult = m_melems[i].m_tglMesh->SetTexture((const Tgl::Texture *)p_textureInfo);
// clang-format off
assert(Succeeded( tglResult ));
// clang-format on
#else
LegoTextureInfo::SetGroupTexture(m_melems[i].m_tglMesh, p_textureInfo);
#endif
m_melems[i].m_tglMesh->SetColor(1.0F, 1.0F, 1.0F, 0.0F);
m_melems[i].m_textured = TRUE;
}

View File

@ -34,7 +34,10 @@ class ViewLOD : public LODObject {
Tgl::MeshBuilder* GetMeshBuilder() { return m_meshBuilder; }
const Tgl::MeshBuilder* GetMeshBuilder() const { return m_meshBuilder; }
unsigned int GetFlags() { return m_flags; }
// FUNCTION: BETA10 0x1018e600
unsigned char SkipReadingData() { return m_flags & 0xffffff04; }
unsigned char IsExtraLOD() { return m_flags & 0xffffff08; }
void SetFlag(unsigned char p_flag) { m_flags |= p_flag; }