Implement/match LegoROI::FUN_100a9dd0 (#1141)

* Implement/match LegoROI::FUN_100a9dd0

* Implement/match LegoROI::FUN_100a9cf0
This commit is contained in:
Christian Semmler 2024-11-10 09:35:44 -07:00 committed by GitHub
parent 86a8bad545
commit 6885abdc78
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 30 additions and 6 deletions

View file

@ -388,6 +388,13 @@ LegoBool LegoLOD::FUN_100aae20(const LegoChar* p_name)
return FALSE; return FALSE;
} }
// FUNCTION: LEGO1 0x100aae60
// FUNCTION: BETA10 0x1018e50f
void LegoLOD::FUN_100aae60()
{
m_unk0x1c = 0;
}
inline BOOL GetMeshData(IDirect3DRMMesh*& mesh, D3DRMGROUPINDEX& index, Tgl::Mesh* pMesh) inline BOOL GetMeshData(IDirect3DRMMesh*& mesh, D3DRMGROUPINDEX& index, Tgl::Mesh* pMesh)
{ {
mesh = ((TglImpl::MeshImpl*) pMesh)->ImplementationData()->groupMesh; mesh = ((TglImpl::MeshImpl*) pMesh)->ImplementationData()->groupMesh;

View file

@ -32,6 +32,7 @@ class LegoLOD : public ViewLOD {
LegoResult FUN_100aacb0(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha); LegoResult FUN_100aacb0(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult FUN_100aad00(LegoTextureInfo* p_textureInfo); LegoResult FUN_100aad00(LegoTextureInfo* p_textureInfo);
LegoResult FUN_100aad70(LegoTextureInfo* p_textureInfo); LegoResult FUN_100aad70(LegoTextureInfo* p_textureInfo);
void FUN_100aae60();
LegoResult GetTexture(LegoTextureInfo*& p_textureInfo); LegoResult GetTexture(LegoTextureInfo*& p_textureInfo);
static LegoBool FUN_100aae20(const LegoChar* p_name); static LegoBool FUN_100aae20(const LegoChar* p_name);

View file

@ -53,6 +53,9 @@ const char* g_unk0x10101390[] = {"rcuser", "jsuser", "dunebugy", "chtrblad", "ch
// GLOBAL: LEGO1 0x101013ac // GLOBAL: LEGO1 0x101013ac
ROIHandler g_unk0x101013ac = NULL; ROIHandler g_unk0x101013ac = NULL;
// GLOBAL: LEGO1 0x101013b0
TextureHandler g_unk0x101013b0 = NULL;
// FUNCTION: LEGO1 0x100a81b0 // FUNCTION: LEGO1 0x100a81b0
void LegoROI::FUN_100a81b0(const LegoChar* p_error, const LegoChar* p_name) void LegoROI::FUN_100a81b0(const LegoChar* p_error, const LegoChar* p_name)
{ {
@ -757,7 +760,7 @@ LegoBool LegoROI::FUN_100a9bf0(const LegoChar* p_param, float& p_red, float& p_g
if (g_unk0x101013ac) { if (g_unk0x101013ac) {
char buf[32]; char buf[32];
if (g_unk0x101013ac(p_param, buf, 32)) { if (g_unk0x101013ac(p_param, buf, sizeof(buf))) {
p_param = buf; p_param = buf;
} }
} }
@ -782,10 +785,18 @@ LegoBool LegoROI::ColorAliasLookup(const LegoChar* p_param, float& p_red, float&
return FALSE; return FALSE;
} }
// STUB: LEGO1 0x100a9cf0 // FUNCTION: LEGO1 0x100a9cf0
LegoBool LegoROI::FUN_100a9cf0(const LegoChar* p_param, unsigned char* paletteEntries, LegoU32 p_numEntries) LegoBool LegoROI::FUN_100a9cf0(const LegoChar* p_param, unsigned char* paletteEntries, LegoU32 p_numEntries)
{ {
// TODO if (p_param == NULL) {
return FALSE;
}
if (g_unk0x101013b0 != NULL) {
return g_unk0x101013b0(p_param, paletteEntries, p_numEntries);
}
paletteEntries[0] = '\0';
return FALSE; return FALSE;
} }
@ -812,11 +823,15 @@ void LegoROI::SetName(const LegoChar* p_name)
} }
} }
// STUB: LEGO1 0x100a9dd0 // FUNCTION: LEGO1 0x100a9dd0
// STUB: BETA10 0x1018bfdb // FUNCTION: BETA10 0x1018bfdb
void LegoROI::FUN_100a9dd0() void LegoROI::FUN_100a9dd0()
{ {
// TODO int lodCount = GetLODCount();
for (LegoS32 i = 0; i < lodCount; i++) {
LegoLOD* lod = (LegoLOD*) GetLOD(i);
lod->FUN_100aae60();
}
} }
// FUNCTION: LEGO1 0x100a9e10 // FUNCTION: LEGO1 0x100a9e10

View file

@ -5,6 +5,7 @@
#include "viewmanager/viewroi.h" #include "viewmanager/viewroi.h"
typedef unsigned char (*ROIHandler)(const char*, char*, unsigned int); typedef unsigned char (*ROIHandler)(const char*, char*, unsigned int);
typedef unsigned char (*TextureHandler)(const char*, unsigned char*, unsigned int);
class LegoEntity; class LegoEntity;
class LegoTextureContainer; class LegoTextureContainer;