Update names

This commit is contained in:
Christian Semmler 2025-05-09 08:59:27 -07:00
parent cfd746eb95
commit 6c5c06c9dd
10 changed files with 55 additions and 86 deletions

View File

@ -228,7 +228,7 @@ class LegoGameState {
MxResult WriteEndOfVariables(LegoStorage* p_storage);
MxS32 ReadVariable(LegoStorage* p_storage, MxVariableTable* p_to);
void SetColors();
void SetROIHandlerFunction();
void SetROIColorOverride();
char* m_savePath; // 0x00
MxS16 m_stateCount; // 0x04
@ -255,7 +255,7 @@ class LegoGameState {
Area m_unk0x42c; // 0x42c
};
MxBool ROIHandlerFunction(const char* p_input, char* p_output, MxU32 p_copyLen);
MxBool ROIColorOverride(const char* p_input, char* p_output, MxU32 p_copyLen);
// SYNTHETIC: LEGO1 0x1003c860
// LegoGameState::ScoreItem::ScoreItem

View File

@ -1373,7 +1373,7 @@ void LegoCarBuild::FUN_10025350(MxS32 p_objectId)
m_Paint_Sound->Enable(FALSE);
m_Paint_Sound->Enable(TRUE);
m_unk0x110->SetColorNamed2(color);
m_unk0x110->FUN_100a93b0(color);
sprintf(buffer, "c_%s", m_unk0x110->GetName());
VariableTable()->SetVariable(buffer, color);
}

View File

@ -221,7 +221,7 @@ void LegoCarBuildAnimPresenter::StreamingTickle()
if (roi && roi->GetName() && (strcmpi(name, roi->GetName()) == 0)) {
roi->ClearMeshOffset();
roi->SetColorNamed("lego red");
roi->SetLodColor("lego red");
}
}
}

View File

@ -567,19 +567,13 @@ LegoROI* LegoCharacterManager::CreateActorROI(const char* p_key)
LegoTextureInfo* textureInfo = textureContainer->Get(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]]);
if (textureInfo != NULL) {
childROI->SetTexture(textureInfo);
childROI->SetTextureInfo(textureInfo);
childROI->SetLodColor(1.0F, 1.0F, 1.0F, 0.0F);
}
}
else if (g_actorLODs[i + 1].m_flags & LegoActorLOD::c_flag2 || (i == 0 && part.m_unk0x00[part.m_unk0x08] == 0)) {
LegoFloat red, green, blue, alpha;
childROI->GetColorFromGlobalHandlerOrAlias(
part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]],
red,
green,
blue,
alpha
);
childROI->GetRGBAColor(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
childROI->SetLodColor(red, green, blue, alpha);
}
@ -802,7 +796,7 @@ MxBool LegoCharacterManager::SwitchColor(LegoROI* p_roi, LegoROI* p_targetROI)
}
LegoFloat red, green, blue, alpha;
LegoROI::GetColorFromGlobalHandlerOrAlias(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
LegoROI::GetRGBAColor(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
p_targetROI->SetLodColor(red, green, blue, alpha);
return TRUE;
}
@ -838,18 +832,12 @@ MxBool LegoCharacterManager::SwitchVariant(LegoROI* p_roi)
Tgl::Renderer* renderer = VideoManager()->GetRenderer();
LegoFloat red, green, blue, alpha;
LegoROI::GetColorFromGlobalHandlerOrAlias(
part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]],
red,
green,
blue,
alpha
);
LegoROI::GetRGBAColor(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
for (MxS32 i = 0; i < lodSize; i++) {
LegoLOD* lod = (LegoLOD*) (*lodList)[i];
LegoLOD* clone = lod->Clone(renderer);
clone->FUN_100aacb0(red, green, blue, alpha);
clone->SetColor(red, green, blue, alpha);
dupLodList->PushBack(clone);
}

View File

@ -145,7 +145,7 @@ const char* g_strDisable = "disable";
LegoGameState::LegoGameState()
{
SetColors();
SetROIHandlerFunction();
SetROIColorOverride();
m_stateCount = 0;
m_actorId = 0;
@ -176,7 +176,7 @@ LegoGameState::LegoGameState()
// FUNCTION: LEGO1 0x10039720
LegoGameState::~LegoGameState()
{
LegoROI::SetGlobalROIHandler(NULL);
LegoROI::SetColorOverride(NULL);
if (m_stateCount) {
for (MxS16 i = 0; i < m_stateCount; i++) {
@ -1060,13 +1060,13 @@ void LegoGameState::SetColors()
}
// FUNCTION: LEGO1 0x1003bac0
void LegoGameState::SetROIHandlerFunction()
void LegoGameState::SetROIColorOverride()
{
LegoROI::SetGlobalROIHandler(&ROIHandlerFunction);
LegoROI::SetColorOverride(&ROIColorOverride);
}
// FUNCTION: LEGO1 0x1003bad0
MxBool ROIHandlerFunction(const char* p_input, char* p_output, MxU32 p_copyLen)
MxBool ROIColorOverride(const char* p_input, char* p_output, MxU32 p_copyLen)
{
if (p_output != NULL && p_copyLen != 0 &&
(strnicmp(p_input, "INDIR-F-", strlen("INDIR-F-")) == 0 ||

View File

@ -56,7 +56,7 @@ void LegoPhonemePresenter::StartingTickle()
}
head = entityROI->FindChildROI("head", entityROI);
head->GetTexture(m_textureInfo);
head->GetTextureInfo(m_textureInfo);
LegoPhonemeList* phonemeList = VideoManager()->GetPhonemeList();
LegoPhoneme* phoneme = new LegoPhoneme(m_roiName.GetData(), 1);

View File

@ -212,7 +212,7 @@ LegoResult LegoLOD::Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_text
if (textureName != NULL) {
if (mesh->GetUnknown0x21()) {
LegoROI::GetPaletteEntriesFromGlobalHandler(textureName, paletteEntries, sizeOfArray(paletteEntries));
LegoROI::GetPaletteEntries(textureName, paletteEntries, sizeOfArray(paletteEntries));
}
textureInfo = p_textureContainer->Get(mesh->GetTextureName());
@ -232,7 +232,7 @@ LegoResult LegoLOD::Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_text
LegoFloat alpha = 0.0F;
if (mesh->GetUnknown0x21()) {
LegoROI::GetColorFromGlobalHandlerOrAlias(materialName, red, green, blue, alpha);
LegoROI::GetRGBAColor(materialName, red, green, blue, alpha);
}
else {
red = mesh->GetColor().GetRed() / 255.0;
@ -325,7 +325,7 @@ LegoLOD* LegoLOD::Clone(Tgl::Renderer* p_renderer)
}
// FUNCTION: LEGO1 0x100aacb0
LegoResult LegoLOD::FUN_100aacb0(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha)
LegoResult LegoLOD::SetColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha)
{
for (LegoU32 i = m_meshOffset; i < m_numMeshes; i++) {
if (!m_melems[i].m_unk0x04) {

View File

@ -29,7 +29,7 @@ class LegoLOD : public ViewLOD {
LegoResult Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_textureContainer, LegoStorage* p_storage);
LegoLOD* Clone(Tgl::Renderer* p_renderer);
LegoResult FUN_100aacb0(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult SetColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult SetTextureInfo(LegoTextureInfo* p_textureInfo);
LegoResult FUN_100aad70(LegoTextureInfo* p_textureInfo);
void ClearMeshOffset();

View File

@ -52,7 +52,7 @@ const char* g_unk0x10101380[] = {"bike", "moto", "haus", NULL};
const char* g_unk0x10101390[] = {"rcuser", "jsuser", "dunebugy", "chtrblad", "chtrbody", "chtrshld", NULL};
// GLOBAL: LEGO1 0x101013ac
ROIHandler g_roiHandler = NULL;
ColorOverride g_colorOverride = NULL;
// GLOBAL: LEGO1 0x101013b0
TextureHandler g_textureHandler = NULL;
@ -299,7 +299,7 @@ LegoResult LegoROI::Read(
goto done;
}
SetTexture(textureInfo);
SetTextureInfo(textureInfo);
SetLodColor(1.0F, 1.0F, 1.0F, 0.0F);
}
else {
@ -307,7 +307,7 @@ LegoResult LegoROI::Read(
LegoFloat green = 0.0F;
LegoFloat blue = 1.0F;
LegoFloat alpha = 0.0F;
GetColorFromGlobalHandlerOrAlias(textureName, red, green, blue, alpha);
GetRGBAColor(textureName, red, green, blue, alpha);
SetLodColor(red, green, blue, alpha);
}
}
@ -490,7 +490,7 @@ LegoResult LegoROI::SetLodColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_
for (LegoU32 i = 0; i < lodCount; i++) {
LegoLOD* lod = (LegoLOD*) GetLOD(i);
if (lod->FUN_100aacb0(p_red, p_green, p_blue, p_alpha) != SUCCESS) {
if (lod->SetColor(p_red, p_green, p_blue, p_alpha) != SUCCESS) {
result = FAILURE;
}
}
@ -507,7 +507,7 @@ LegoResult LegoROI::SetLodColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_
}
// FUNCTION: LEGO1 0x100a9210
LegoResult LegoROI::SetTexture(LegoTextureInfo* p_textureInfo)
LegoResult LegoROI::SetTextureInfo(LegoTextureInfo* p_textureInfo)
{
LegoResult result = SUCCESS;
CompoundObject::iterator it;
@ -523,7 +523,7 @@ LegoResult LegoROI::SetTexture(LegoTextureInfo* p_textureInfo)
if (comp != NULL) {
for (it = comp->begin(); it != comp->end(); it++) {
if (((LegoROI*) *it)->SetTexture(p_textureInfo) != SUCCESS) {
if (((LegoROI*) *it)->SetTextureInfo(p_textureInfo) != SUCCESS) {
result = FAILURE;
}
}
@ -534,7 +534,7 @@ LegoResult LegoROI::SetTexture(LegoTextureInfo* p_textureInfo)
// FUNCTION: LEGO1 0x100a92a0
// FUNCTION: BETA10 0x1018b12d
LegoResult LegoROI::GetTexture(LegoTextureInfo*& p_textureInfo)
LegoResult LegoROI::GetTextureInfo(LegoTextureInfo*& p_textureInfo)
{
CompoundObject::iterator it;
@ -549,7 +549,7 @@ LegoResult LegoROI::GetTexture(LegoTextureInfo*& p_textureInfo)
if (comp != NULL) {
for (it = comp->begin(); it != comp->end(); it++) {
if (((LegoROI*) *it)->GetTexture(p_textureInfo) == SUCCESS) {
if (((LegoROI*) *it)->GetTextureInfo(p_textureInfo) == SUCCESS) {
return SUCCESS;
}
}
@ -560,17 +560,17 @@ LegoResult LegoROI::GetTexture(LegoTextureInfo*& p_textureInfo)
// FUNCTION: LEGO1 0x100a9330
// FUNCTION: BETA10 0x1018b22c
LegoResult LegoROI::SetCustomLodColor2(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha)
LegoResult LegoROI::FUN_100a9330(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha)
{
return SetLodColor(p_red, p_green, p_blue, p_alpha);
}
// FUNCTION: LEGO1 0x100a9350
// FUNCTION: BETA10 0x1018b25c
LegoResult LegoROI::SetColorNamed(const LegoChar* p_color)
LegoResult LegoROI::SetLodColor(const LegoChar* p_name)
{
MxFloat red, green, blue, alpha;
if (ColorAliasLookup(p_color, red, green, blue, alpha)) {
if (ColorAliasLookup(p_name, red, green, blue, alpha)) {
return SetLodColor(red, green, blue, alpha);
}
@ -579,11 +579,11 @@ LegoResult LegoROI::SetColorNamed(const LegoChar* p_color)
// FUNCTION: LEGO1 0x100a93b0
// FUNCTION: BETA10 0x1018b2c0
LegoResult LegoROI::SetColorNamed2(const LegoChar* p_color)
LegoResult LegoROI::FUN_100a93b0(const LegoChar* p_name)
{
MxFloat red, green, blue, alpha;
if (ColorAliasLookup(p_color, red, green, blue, alpha)) {
return SetCustomLodColor2(red, green, blue, alpha);
if (ColorAliasLookup(p_name, red, green, blue, alpha)) {
return FUN_100a9330(red, green, blue, alpha);
}
return 0;
@ -755,26 +755,20 @@ void TimeROI::FUN_100a9b40(Matrix4& p_matrix, LegoTime p_time)
}
// FUNCTION: LEGO1 0x100a9bf0
LegoBool LegoROI::GetColorFromGlobalHandlerOrAlias(
const LegoChar* p_param,
float& p_red,
float& p_green,
float& p_blue,
float& p_alpha
)
LegoBool LegoROI::GetRGBAColor(const LegoChar* p_name, float& p_red, float& p_green, float& p_blue, float& p_alpha)
{
if (p_param == NULL) {
if (p_name == NULL) {
return FALSE;
}
if (g_roiHandler) {
char buf[32];
if (g_roiHandler(p_param, buf, sizeof(buf))) {
p_param = buf;
char p_updatedName[32];
if (g_colorOverride) {
if (g_colorOverride(p_name, p_updatedName, sizeof(p_updatedName))) {
p_name = p_updatedName;
}
}
return ColorAliasLookup(p_param, p_red, p_green, p_blue, p_alpha);
return ColorAliasLookup(p_name, p_red, p_green, p_blue, p_alpha);
}
// FUNCTION: LEGO1 0x100a9c50
@ -795,18 +789,15 @@ LegoBool LegoROI::ColorAliasLookup(const LegoChar* p_param, float& p_red, float&
}
// FUNCTION: LEGO1 0x100a9cf0
LegoBool LegoROI::GetPaletteEntriesFromGlobalHandler(
const LegoChar* p_param,
unsigned char* paletteEntries,
LegoU32 p_numEntries
)
LegoBool LegoROI::GetPaletteEntries(const LegoChar* p_name, unsigned char* paletteEntries, LegoU32 p_numEntries)
{
if (p_param == NULL) {
if (p_name == NULL) {
return FALSE;
}
// Note: g_textureHandler is never set in the code base
if (g_textureHandler != NULL) {
return g_textureHandler(p_param, paletteEntries, p_numEntries);
return g_textureHandler(p_name, paletteEntries, p_numEntries);
}
paletteEntries[0] = '\0';
@ -814,9 +805,9 @@ LegoBool LegoROI::GetPaletteEntriesFromGlobalHandler(
}
// FUNCTION: LEGO1 0x100a9d30
void LegoROI::SetGlobalROIHandler(ROIHandler p_func)
void LegoROI::SetColorOverride(ColorOverride p_colorOverride)
{
g_roiHandler = p_func;
g_colorOverride = p_colorOverride;
}
// FUNCTION: LEGO1 0x100a9d40

View File

@ -4,7 +4,7 @@
#include "misc/legotypes.h"
#include "viewmanager/viewroi.h"
typedef unsigned char (*ROIHandler)(const char*, char*, unsigned int);
typedef unsigned char (*ColorOverride)(const char*, char*, unsigned int);
typedef unsigned char (*TextureHandler)(const char*, unsigned char*, unsigned int);
class LegoEntity;
@ -37,11 +37,11 @@ class LegoROI : public ViewROI {
static void FUN_100a8fd0(LegoTreeNode* p_node, Matrix4& p_matrix, LegoTime p_time, LegoROI** p_roiMap);
LegoResult SetFrame(LegoAnim* p_anim, LegoTime p_time);
LegoResult SetLodColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult SetTexture(LegoTextureInfo* p_textureInfo);
LegoResult GetTexture(LegoTextureInfo*& p_textureInfo);
LegoResult SetCustomLodColor2(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult SetColorNamed(const LegoChar* p_color);
LegoResult SetColorNamed2(const LegoChar* p_color);
LegoResult SetTextureInfo(LegoTextureInfo* p_textureInfo);
LegoResult GetTextureInfo(LegoTextureInfo*& p_textureInfo);
LegoResult FUN_100a9330(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult SetLodColor(const LegoChar* p_name);
LegoResult FUN_100a93b0(const LegoChar* p_name);
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);
@ -54,14 +54,8 @@ class LegoROI : public ViewROI {
static LegoResult FUN_100a8cb0(LegoAnimNodeData* p_data, LegoTime p_time, Matrix4& p_matrix);
static void FUN_100a81b0(const LegoChar* p_error, const LegoChar* p_name);
static void configureLegoROI(int p_roi);
static void SetGlobalROIHandler(ROIHandler p_func);
static LegoBool GetColorFromGlobalHandlerOrAlias(
const LegoChar* p_param,
float& p_red,
float& p_green,
float& p_blue,
float& p_alpha
);
static void SetColorOverride(ColorOverride p_colorOverride);
static LegoBool GetRGBAColor(const LegoChar* p_name, float& p_red, float& p_green, float& p_blue, float& p_alpha);
static LegoBool ColorAliasLookup(
const LegoChar* p_param,
float& p_red,
@ -69,11 +63,7 @@ class LegoROI : public ViewROI {
float& p_blue,
float& p_alpha
);
static LegoBool GetPaletteEntriesFromGlobalHandler(
const LegoChar* p_param,
unsigned char* paletteEntries,
LegoU32 p_numEntries
);
static LegoBool GetPaletteEntries(const LegoChar* p_name, unsigned char* paletteEntries, LegoU32 p_numEntries);
// FUNCTION: BETA10 0x1000f320
const LegoChar* GetName() const { return m_name; }