mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-25 01:14:19 +00:00
Implement/match LegoPhonemePresenter::StartingTickle (#809)
* Implement/match LegoPhonemePresenter::StartingTickle * Name vars * Fix name
This commit is contained in:
committed by
GitHub
parent
41281dcbec
commit
2600b1b421
@@ -469,6 +469,13 @@ done:
|
||||
return roi;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100849a0
|
||||
MxU32 LegoCharacterManager::FUN_100849a0(LegoROI* p_roi, LegoTextureInfo* p_textureInfo)
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10084c00
|
||||
MxBool LegoCharacterManager::Exists(const char* p_key)
|
||||
{
|
||||
|
||||
62
LEGO1/lego/legoomni/src/common/legophoneme.cpp
Normal file
62
LEGO1/lego/legoomni/src/common/legophoneme.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
#include "legophoneme.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoPhoneme, 0x20)
|
||||
|
||||
// FUNCTION: LEGO1 0x10044e50
|
||||
LegoPhoneme::~LegoPhoneme()
|
||||
{
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044eb0
|
||||
undefined4 LegoPhoneme::VTable0x00()
|
||||
{
|
||||
return m_unk0x14;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044ec0
|
||||
void LegoPhoneme::VTable0x04(undefined4 p_unk0x14)
|
||||
{
|
||||
m_unk0x14 = p_unk0x14;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044ed0
|
||||
LegoTextureInfo* LegoPhoneme::VTable0x08()
|
||||
{
|
||||
return m_unk0x18;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044ee0
|
||||
void LegoPhoneme::VTable0x0c(LegoTextureInfo* p_unk0x18)
|
||||
{
|
||||
m_unk0x18 = p_unk0x18;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044ef0
|
||||
LegoTextureInfo* LegoPhoneme::VTable0x10()
|
||||
{
|
||||
return m_unk0x1c;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044f00
|
||||
void LegoPhoneme::VTable0x14(LegoTextureInfo* p_unk0x1c)
|
||||
{
|
||||
m_unk0x1c = p_unk0x1c;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044f10
|
||||
void LegoPhoneme::VTable0x18()
|
||||
{
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044f20
|
||||
void LegoPhoneme::Init()
|
||||
{
|
||||
m_unk0x14 = 0;
|
||||
m_unk0x18 = NULL;
|
||||
m_unk0x1c = NULL;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044f30
|
||||
void LegoPhoneme::VTable0x20(undefined4)
|
||||
{
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
#include "legounknown100d7c88.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoUnknown100d7c88, 0x18)
|
||||
|
||||
// FUNCTION: LEGO1 0x10044e50
|
||||
LegoUnknown100d7c88::~LegoUnknown100d7c88()
|
||||
{
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10044eb0
|
||||
MxU32 LegoUnknown100d7c88::VTable0x00()
|
||||
{
|
||||
return m_unk0x14;
|
||||
}
|
||||
@@ -394,10 +394,10 @@ void LegoAnimPresenter::FUN_1006a3c0(LegoAnimPresenterMap& p_map, LegoTreeNode*
|
||||
}
|
||||
}
|
||||
else {
|
||||
LegoROI* roi2 = p_roi->FUN_100a8ce0(name, p_roi);
|
||||
LegoROI* child = p_roi->FindChildROI(name, p_roi);
|
||||
|
||||
if (roi2 != NULL) {
|
||||
FUN_1006a4f0(p_map, data, und, roi2);
|
||||
if (child != NULL) {
|
||||
FUN_1006a4f0(p_map, data, und, child);
|
||||
}
|
||||
else {
|
||||
if (FUN_100699e0(name) != NULL) {
|
||||
@@ -473,9 +473,9 @@ MxBool LegoAnimPresenter::FUN_1006abb0(LegoTreeNode* p_node, LegoROI* p_roi)
|
||||
}
|
||||
}
|
||||
else {
|
||||
LegoROI* roi2 = p_roi->FUN_100a8ce0(name, p_roi);
|
||||
LegoROI* child = p_roi->FindChildROI(name, p_roi);
|
||||
|
||||
if (roi2 == NULL) {
|
||||
if (child == NULL) {
|
||||
if (FUN_100699e0(name) != NULL) {
|
||||
if (FUN_1006abb0(p_node, NULL)) {
|
||||
result = TRUE;
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
#include "legophonemepresenter.h"
|
||||
|
||||
#include "legocharactermanager.h"
|
||||
#include "misc.h"
|
||||
#include "misc/legocontainer.h"
|
||||
#include "mxcompositepresenter.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoPhonemePresenter, 0x88)
|
||||
|
||||
// FUNCTION: LEGO1 0x1004e180
|
||||
@@ -17,17 +22,66 @@ LegoPhonemePresenter::~LegoPhonemePresenter()
|
||||
void LegoPhonemePresenter::Init()
|
||||
{
|
||||
m_unk0x68 = 0;
|
||||
m_unk0x6c = 0;
|
||||
m_unk0x70 = 0;
|
||||
m_unk0x84 = 0;
|
||||
m_textureInfo = NULL;
|
||||
m_unk0x70 = FALSE;
|
||||
m_unk0x84 = FALSE;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1004e3d0
|
||||
// FUNCTION: LEGO1 0x1004e3d0
|
||||
void LegoPhonemePresenter::StartingTickle()
|
||||
{
|
||||
// TODO
|
||||
MxFlcPresenter::StartingTickle();
|
||||
|
||||
EndAction();
|
||||
if (m_textureInfo == NULL) {
|
||||
MxU16 extraLength;
|
||||
char* extraData;
|
||||
|
||||
m_action->GetExtra(extraLength, extraData);
|
||||
|
||||
if (extraData != NULL) {
|
||||
m_roiName = extraData;
|
||||
m_roiName.ToUpperCase();
|
||||
|
||||
LegoROI *entityROI, *head;
|
||||
|
||||
if (m_compositePresenter != NULL && m_compositePresenter->IsA("LegoAnimMMPresenter")) {
|
||||
entityROI = FindROI(m_roiName.GetData());
|
||||
m_unk0x84 = TRUE;
|
||||
}
|
||||
else {
|
||||
entityROI = CharacterManager()->GetROI(m_roiName.GetData(), TRUE);
|
||||
}
|
||||
|
||||
head = entityROI->FindChildROI("head", entityROI);
|
||||
head->GetTexture(m_textureInfo);
|
||||
|
||||
LegoPhonemeList* phonemeList = VideoManager()->GetPhonemeList();
|
||||
LegoPhoneme* phoneme = new LegoPhoneme(m_roiName.GetData(), 1);
|
||||
|
||||
LegoPhonemeListCursor cursor(phonemeList);
|
||||
|
||||
if (!cursor.Find(phoneme)) {
|
||||
LegoTextureInfo* textureInfo = TextureContainer()->AddToList(m_textureInfo);
|
||||
|
||||
CharacterManager()->FUN_100849a0(entityROI, textureInfo);
|
||||
|
||||
phoneme->VTable0x0c(m_textureInfo);
|
||||
phoneme->VTable0x14(textureInfo);
|
||||
phonemeList->Append(phoneme);
|
||||
m_textureInfo = textureInfo;
|
||||
}
|
||||
else {
|
||||
LegoPhoneme* newPhoneme = phoneme;
|
||||
cursor.Current(phoneme);
|
||||
delete newPhoneme;
|
||||
|
||||
phoneme->VTable0x04(phoneme->VTable0x00() + 1);
|
||||
cursor.SetValue(phoneme);
|
||||
|
||||
m_unk0x70 = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1004e800
|
||||
|
||||
@@ -25,7 +25,7 @@ LegoVideoManager::LegoVideoManager()
|
||||
m_unk0xe6 = FALSE;
|
||||
memset(m_unk0x78, 0, sizeof(m_unk0x78));
|
||||
m_unk0x78[0] = 0x6c;
|
||||
m_unk0x100d9d00 = NULL;
|
||||
m_phonemeRefList = NULL;
|
||||
m_isFullscreenMovie = FALSE;
|
||||
m_palette = NULL;
|
||||
m_stopWatch = NULL;
|
||||
@@ -194,7 +194,7 @@ MxResult LegoVideoManager::Create(MxVideoParam& p_videoParam, MxU32 p_frequencyM
|
||||
m_3dManager->Add(*m_viewROI);
|
||||
m_3dManager->SetPointOfView(*m_viewROI);
|
||||
|
||||
m_unk0x100d9d00 = new LegoUnknown100d9d00;
|
||||
m_phonemeRefList = new LegoPhonemeList;
|
||||
SetRender3D(FALSE);
|
||||
m_stopWatch = new MxStopWatch;
|
||||
m_stopWatch->Start();
|
||||
|
||||
Reference in New Issue
Block a user