Clear unknowns in LegoPhoneme (#1556)

This commit is contained in:
Fabian Neundorf 2025-06-11 23:29:23 +02:00 committed by GitHub
parent bc481cc1c5
commit 3b3fe276c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 37 additions and 37 deletions

View File

@ -10,21 +10,21 @@ class LegoTextureInfo;
// SIZE 0x20 // SIZE 0x20
class LegoPhoneme { class LegoPhoneme {
public: public:
LegoPhoneme(const char* p_name, undefined4 p_unk0x14) LegoPhoneme(const char* p_name, MxU32 p_count)
{ {
m_name = p_name; m_name = p_name;
m_name.ToUpperCase(); m_name.ToUpperCase();
Init(); Init();
m_unk0x14 = p_unk0x14; m_count = p_count;
} }
~LegoPhoneme(); ~LegoPhoneme();
virtual undefined4 VTable0x00(); // vtable+0x00 virtual MxU32 GetCount(); // vtable+0x00
virtual void VTable0x04(undefined4 p_unk0x14); // vtable+0x04 virtual void SetCount(MxU32 p_count); // vtable+0x04
virtual LegoTextureInfo* VTable0x08(); // vtable+0x08 virtual LegoTextureInfo* GetTextureInfo(); // vtable+0x08
virtual void VTable0x0c(LegoTextureInfo* p_unk0x18); // vtable+0x0c virtual void SetTextureInfo(LegoTextureInfo* p_textureInfo); // vtable+0x0c
virtual LegoTextureInfo* VTable0x10(); // vtable+0x10 virtual LegoTextureInfo* GetCachedTextureInfo(); // vtable+0x10
virtual void VTable0x14(LegoTextureInfo* p_unk0x1c); // vtable+0x14 virtual void SetCachedTextureInfo(LegoTextureInfo* p_cachedTextureInfo); // vtable+0x14
virtual void VTable0x18(); // vtable+0x18 virtual void VTable0x18(); // vtable+0x18
virtual void Init(); // vtable+0x1c virtual void Init(); // vtable+0x1c
virtual void VTable0x20(undefined4); // vtable+0x20 virtual void VTable0x20(undefined4); // vtable+0x20
@ -33,9 +33,9 @@ public:
private: private:
MxString m_name; // 0x04 MxString m_name; // 0x04
undefined4 m_unk0x14; // 0x14 MxU32 m_count; // 0x14
LegoTextureInfo* m_unk0x18; // 0x18 LegoTextureInfo* m_textureInfo; // 0x18
LegoTextureInfo* m_unk0x1c; // 0x1c LegoTextureInfo* m_cachedTextureInfo; // 0x1c
}; };
#endif // LEGOPHONEME_H #endif // LEGOPHONEME_H

View File

@ -8,39 +8,39 @@ LegoPhoneme::~LegoPhoneme()
} }
// FUNCTION: LEGO1 0x10044eb0 // FUNCTION: LEGO1 0x10044eb0
undefined4 LegoPhoneme::VTable0x00() MxU32 LegoPhoneme::GetCount()
{ {
return m_unk0x14; return m_count;
} }
// FUNCTION: LEGO1 0x10044ec0 // FUNCTION: LEGO1 0x10044ec0
void LegoPhoneme::VTable0x04(undefined4 p_unk0x14) void LegoPhoneme::SetCount(MxU32 p_count)
{ {
m_unk0x14 = p_unk0x14; m_count = p_count;
} }
// FUNCTION: LEGO1 0x10044ed0 // FUNCTION: LEGO1 0x10044ed0
LegoTextureInfo* LegoPhoneme::VTable0x08() LegoTextureInfo* LegoPhoneme::GetTextureInfo()
{ {
return m_unk0x18; return m_textureInfo;
} }
// FUNCTION: LEGO1 0x10044ee0 // FUNCTION: LEGO1 0x10044ee0
void LegoPhoneme::VTable0x0c(LegoTextureInfo* p_unk0x18) void LegoPhoneme::SetTextureInfo(LegoTextureInfo* p_textureInfo)
{ {
m_unk0x18 = p_unk0x18; m_textureInfo = p_textureInfo;
} }
// FUNCTION: LEGO1 0x10044ef0 // FUNCTION: LEGO1 0x10044ef0
LegoTextureInfo* LegoPhoneme::VTable0x10() LegoTextureInfo* LegoPhoneme::GetCachedTextureInfo()
{ {
return m_unk0x1c; return m_cachedTextureInfo;
} }
// FUNCTION: LEGO1 0x10044f00 // FUNCTION: LEGO1 0x10044f00
void LegoPhoneme::VTable0x14(LegoTextureInfo* p_unk0x1c) void LegoPhoneme::SetCachedTextureInfo(LegoTextureInfo* p_cachedTextureInfo)
{ {
m_unk0x1c = p_unk0x1c; m_cachedTextureInfo = p_cachedTextureInfo;
} }
// FUNCTION: LEGO1 0x10044f10 // FUNCTION: LEGO1 0x10044f10
@ -51,9 +51,9 @@ void LegoPhoneme::VTable0x18()
// FUNCTION: LEGO1 0x10044f20 // FUNCTION: LEGO1 0x10044f20
void LegoPhoneme::Init() void LegoPhoneme::Init()
{ {
m_unk0x14 = 0; m_count = 0;
m_unk0x18 = NULL; m_textureInfo = NULL;
m_unk0x1c = NULL; m_cachedTextureInfo = NULL;
} }
// FUNCTION: LEGO1 0x10044f30 // FUNCTION: LEGO1 0x10044f30

View File

@ -68,8 +68,8 @@ void LegoPhonemePresenter::StartingTickle()
CharacterManager()->SetHeadTexture(entityROI, textureInfo); CharacterManager()->SetHeadTexture(entityROI, textureInfo);
phoneme->VTable0x0c(m_textureInfo); phoneme->SetTextureInfo(m_textureInfo);
phoneme->VTable0x14(textureInfo); phoneme->SetCachedTextureInfo(textureInfo);
phonemeList->Append(phoneme); phonemeList->Append(phoneme);
m_textureInfo = textureInfo; m_textureInfo = textureInfo;
} }
@ -78,7 +78,7 @@ void LegoPhonemePresenter::StartingTickle()
cursor.Current(phoneme); cursor.Current(phoneme);
delete newPhoneme; delete newPhoneme;
phoneme->VTable0x04(phoneme->VTable0x00() + 1); phoneme->SetCount(phoneme->GetCount() + 1);
cursor.SetValue(phoneme); cursor.SetValue(phoneme);
m_unk0x70 = TRUE; m_unk0x70 = TRUE;
@ -136,7 +136,7 @@ void LegoPhonemePresenter::EndAction()
cursor.Current(phoneme); cursor.Current(phoneme);
delete newPhoneme; delete newPhoneme;
if (phoneme->VTable0x00() == 1) { if (phoneme->GetCount() == 1) {
LegoROI* roi; LegoROI* roi;
if (m_unk0x84) { if (m_unk0x84) {
@ -154,12 +154,12 @@ void LegoPhonemePresenter::EndAction()
CharacterManager()->ReleaseActor(m_roiName.GetData()); CharacterManager()->ReleaseActor(m_roiName.GetData());
} }
TextureContainer()->EraseCached(phoneme->VTable0x10()); TextureContainer()->EraseCached(phoneme->GetCachedTextureInfo());
TextureContainer()->EraseCached(phoneme->VTable0x08()); TextureContainer()->EraseCached(phoneme->GetTextureInfo());
cursor.Destroy(); cursor.Destroy();
} }
else { else {
phoneme->VTable0x04(phoneme->VTable0x00() - 1); phoneme->SetCount(phoneme->GetCount() - 1);
cursor.SetValue(phoneme); cursor.SetValue(phoneme);
} }