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

View File

@ -8,39 +8,39 @@ LegoPhoneme::~LegoPhoneme()
}
// FUNCTION: LEGO1 0x10044eb0
undefined4 LegoPhoneme::VTable0x00()
MxU32 LegoPhoneme::GetCount()
{
return m_unk0x14;
return m_count;
}
// 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
LegoTextureInfo* LegoPhoneme::VTable0x08()
LegoTextureInfo* LegoPhoneme::GetTextureInfo()
{
return m_unk0x18;
return m_textureInfo;
}
// 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
LegoTextureInfo* LegoPhoneme::VTable0x10()
LegoTextureInfo* LegoPhoneme::GetCachedTextureInfo()
{
return m_unk0x1c;
return m_cachedTextureInfo;
}
// 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
@ -51,9 +51,9 @@ void LegoPhoneme::VTable0x18()
// FUNCTION: LEGO1 0x10044f20
void LegoPhoneme::Init()
{
m_unk0x14 = 0;
m_unk0x18 = NULL;
m_unk0x1c = NULL;
m_count = 0;
m_textureInfo = NULL;
m_cachedTextureInfo = NULL;
}
// FUNCTION: LEGO1 0x10044f30

View File

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