From b9f4f72d329f80d2798b9e3b767dc1105668e5e4 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sun, 10 Nov 2024 09:27:32 -0700 Subject: [PATCH] Implement/match LegoROI::FUN_100a9cf0 --- LEGO1/lego/sources/roi/legoroi.cpp | 17 ++++++++++++++--- LEGO1/lego/sources/roi/legoroi.h | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/LEGO1/lego/sources/roi/legoroi.cpp b/LEGO1/lego/sources/roi/legoroi.cpp index 6906ad67..c9e0d21a 100644 --- a/LEGO1/lego/sources/roi/legoroi.cpp +++ b/LEGO1/lego/sources/roi/legoroi.cpp @@ -53,6 +53,9 @@ const char* g_unk0x10101390[] = {"rcuser", "jsuser", "dunebugy", "chtrblad", "ch // GLOBAL: LEGO1 0x101013ac ROIHandler g_unk0x101013ac = NULL; +// GLOBAL: LEGO1 0x101013b0 +TextureHandler g_unk0x101013b0 = NULL; + // FUNCTION: LEGO1 0x100a81b0 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) { char buf[32]; - if (g_unk0x101013ac(p_param, buf, 32)) { + if (g_unk0x101013ac(p_param, buf, sizeof(buf))) { p_param = buf; } } @@ -782,10 +785,18 @@ LegoBool LegoROI::ColorAliasLookup(const LegoChar* p_param, float& p_red, float& return FALSE; } -// STUB: LEGO1 0x100a9cf0 +// FUNCTION: LEGO1 0x100a9cf0 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; } diff --git a/LEGO1/lego/sources/roi/legoroi.h b/LEGO1/lego/sources/roi/legoroi.h index 541cfac5..82fe10af 100644 --- a/LEGO1/lego/sources/roi/legoroi.h +++ b/LEGO1/lego/sources/roi/legoroi.h @@ -5,6 +5,7 @@ #include "viewmanager/viewroi.h" typedef unsigned char (*ROIHandler)(const char*, char*, unsigned int); +typedef unsigned char (*TextureHandler)(const char*, unsigned char*, unsigned int); class LegoEntity; class LegoTextureContainer;