mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-22 07:37:59 -05:00
Implement/match LegoAnimMMPresenter::ReadyTickle (#823)
This commit is contained in:
parent
5021f66de2
commit
0b08b0ae69
7 changed files with 40 additions and 22 deletions
|
@ -112,8 +112,8 @@ class LegoAnimationManager : public MxCore {
|
|||
MxU32 m_unk0x1c; // 0x1c
|
||||
LegoTranInfoList* m_tranInfoList; // 0x20
|
||||
LegoTranInfoList* m_tranInfoList2; // 0x24
|
||||
undefined4 m_unk0x28[2]; // 0x28
|
||||
undefined4 m_unk0x30[2]; // 0x30
|
||||
MxPresenter* m_unk0x28[2]; // 0x28
|
||||
MxPresenter* m_unk0x30[2]; // 0x30
|
||||
undefined m_unk0x38; // 0x38
|
||||
MxBool m_unk0x39; // 0x39
|
||||
undefined m_unk0x3a; // 0x3a
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "mxcompositepresenter.h"
|
||||
|
||||
class LegoAnimPresenter;
|
||||
class LegoWorld;
|
||||
struct LegoTranInfo;
|
||||
|
||||
|
@ -43,7 +44,7 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
|
|||
MxBool FUN_1004b8b0();
|
||||
|
||||
private:
|
||||
MxPresenter* m_unk0x4c; // 0x4c
|
||||
LegoAnimPresenter* m_unk0x4c; // 0x4c
|
||||
undefined4 m_unk0x50; // 0x50
|
||||
undefined4 m_unk0x54; // 0x54
|
||||
undefined m_unk0x58; // 0x58
|
||||
|
|
|
@ -69,7 +69,7 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
|||
return m_unk0x68;
|
||||
} // vtable+0x9c
|
||||
|
||||
virtual void VTable0xa0(); // vtable+0xa0
|
||||
virtual void VTable0xa0(Matrix4*); // vtable+0xa0
|
||||
|
||||
void FUN_1006d680(LegoAnimActor* p_actor, MxFloat p_value);
|
||||
|
||||
|
|
|
@ -39,8 +39,8 @@ struct LegoTranInfo {
|
|||
MxBool m_unk0x14; // 0x14
|
||||
MxBool m_unk0x15; // 0x15
|
||||
MxU32 m_objectId; // 0x18
|
||||
undefined4* m_unk0x1c; // 0x1c
|
||||
undefined4* m_unk0x20; // 0x20
|
||||
MxPresenter** m_unk0x1c; // 0x1c
|
||||
MxPresenter** m_unk0x20; // 0x20
|
||||
LegoAnimMMPresenter* m_presenter; // 0x24
|
||||
MxBool m_unk0x28; // 0x28
|
||||
MxBool m_unk0x29; // 0x29
|
||||
|
|
|
@ -156,8 +156,8 @@ MxResult LegoAnimationManager::LoadScriptInfo(MxS32 p_scriptIndex)
|
|||
}
|
||||
|
||||
for (i = 0; i < (MxS32) _countof(m_unk0x28); i++) {
|
||||
m_unk0x28[i] = 0;
|
||||
m_unk0x30[i] = 0;
|
||||
m_unk0x28[i] = NULL;
|
||||
m_unk0x30[i] = NULL;
|
||||
}
|
||||
|
||||
m_unk0x38 = 0;
|
||||
|
|
|
@ -68,7 +68,7 @@ MxResult LegoAnimMMPresenter::StartAction(MxStreamController* p_controller, MxDS
|
|||
presenter->SetTickleState(MxPresenter::e_idle);
|
||||
|
||||
if (presenter->IsA("LegoAnimPresenter") || presenter->IsA("LegoLoopingAnimPresenter")) {
|
||||
m_unk0x4c = presenter;
|
||||
m_unk0x4c = (LegoAnimPresenter*) presenter;
|
||||
}
|
||||
success = TRUE;
|
||||
}
|
||||
|
@ -101,10 +101,27 @@ void LegoAnimMMPresenter::EndAction()
|
|||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1004b140
|
||||
// FUNCTION: LEGO1 0x1004b140
|
||||
// FUNCTION: BETA10 0x1004c197
|
||||
void LegoAnimMMPresenter::ReadyTickle()
|
||||
{
|
||||
// TODO
|
||||
ParseExtra();
|
||||
|
||||
if (m_tranInfo != NULL && m_tranInfo->m_unk0x15 && m_tranInfo->m_unk0x1c != NULL &&
|
||||
m_tranInfo->m_unk0x1c[0] != NULL) {
|
||||
m_tranInfo->m_unk0x1c[0]->Enable(FALSE);
|
||||
m_tranInfo->m_unk0x1c[0]->Enable(TRUE);
|
||||
}
|
||||
|
||||
if (m_tranInfo != NULL && m_tranInfo->m_unk0x0c != NULL) {
|
||||
m_unk0x4c->VTable0xa0(m_tranInfo->m_unk0x0c);
|
||||
}
|
||||
|
||||
if (m_unk0x4c != NULL) {
|
||||
m_unk0x4c->SetTickleState(e_ready);
|
||||
}
|
||||
|
||||
ProgressTickleState(e_starting);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1004b1c0
|
||||
|
|
|
@ -730,7 +730,7 @@ void LegoAnimPresenter::ParseExtra()
|
|||
}
|
||||
|
||||
// STUB: LEGO1 0x1006c570
|
||||
void LegoAnimPresenter::VTable0xa0()
|
||||
void LegoAnimPresenter::VTable0xa0(Matrix4*)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue