mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-27 10:24:18 +00:00
Implement LegoLOD::Read and related (#634)
* WIP * Fix * Remove bogus * Fix * Match * Fix * Remove TODO
This commit is contained in:
committed by
GitHub
parent
a12146f52f
commit
53e2353f78
@@ -94,11 +94,11 @@ Result GroupImpl::Add(const Mesh* pMesh)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a3450
|
||||
Result GroupImpl::Remove(const Mesh* pMesh)
|
||||
Result GroupImpl::Remove(const Unk* pUnk)
|
||||
{
|
||||
const MeshImpl* pMeshImpl = static_cast<const MeshImpl*>(pMesh);
|
||||
const UnkImpl* pUnkImpl = static_cast<const UnkImpl*>(pUnk);
|
||||
// TODO: Incorrect structure
|
||||
return ResultVal(m_data->DeleteVisual((IDirect3DRMMesh*) pMeshImpl->ImplementationData()));
|
||||
return ResultVal(m_data->DeleteVisual((IDirect3DRMMesh*) pUnkImpl->ImplementationData()));
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a3480
|
||||
|
||||
@@ -282,7 +282,7 @@ public:
|
||||
|
||||
struct MeshData {
|
||||
IDirect3DRMMesh* groupMesh;
|
||||
int groupIndex;
|
||||
D3DRMGROUPINDEX groupIndex;
|
||||
};
|
||||
|
||||
inline MeshData* ImplementationData() const { return m_data; }
|
||||
@@ -320,7 +320,7 @@ public:
|
||||
// vtable+0x20
|
||||
Result Add(const Mesh*) override;
|
||||
Result Remove(const Group*) override;
|
||||
Result Remove(const Mesh*) override;
|
||||
Result Remove(const Unk*) override;
|
||||
Result RemoveAll() override;
|
||||
|
||||
// vtable+0x30
|
||||
@@ -349,14 +349,15 @@ public:
|
||||
void* ImplementationDataPtr() override;
|
||||
|
||||
// vtable+0x08
|
||||
Result SetMeshData(
|
||||
Tgl::Mesh* CreateMesh(
|
||||
unsigned long faceCount,
|
||||
unsigned long vertexCount,
|
||||
const float (*pPositions)[3],
|
||||
const float (*pNormals)[3],
|
||||
const float (*pTextureCoordinates)[2],
|
||||
unsigned long vertexPerFaceCount,
|
||||
unsigned long* pFaceData
|
||||
float (*pPositions)[3],
|
||||
float (*pNormals)[3],
|
||||
float (*pTextureCoordinates)[2],
|
||||
unsigned long (*pFaceIndices)[3],
|
||||
unsigned long (*pTextureIndices)[3],
|
||||
Tgl::ShadingModel shadingModel
|
||||
) override;
|
||||
Result GetBoundingBox(float min[3], float max[3]) override;
|
||||
|
||||
|
||||
@@ -12,17 +12,18 @@ void* UnkImpl::ImplementationDataPtr()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100a3840
|
||||
Result UnkImpl::SetMeshData(
|
||||
Tgl::Mesh* UnkImpl::CreateMesh(
|
||||
unsigned long faceCount,
|
||||
unsigned long vertexCount,
|
||||
const float (*pPositions)[3],
|
||||
const float (*pNormals)[3],
|
||||
const float (*pTextureCoordinates)[2],
|
||||
unsigned long vertexPerFaceCount,
|
||||
unsigned long* pFaceData
|
||||
float (*pPositions)[3],
|
||||
float (*pNormals)[3],
|
||||
float (*pTextureCoordinates)[2],
|
||||
unsigned long (*pFaceIndices)[3],
|
||||
unsigned long (*pTextureIndices)[3],
|
||||
Tgl::ShadingModel shadingModel
|
||||
)
|
||||
{
|
||||
return Error;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a3ae0
|
||||
|
||||
Reference in New Issue
Block a user