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
|
MxU32 m_unk0x1c; // 0x1c
|
||||||
LegoTranInfoList* m_tranInfoList; // 0x20
|
LegoTranInfoList* m_tranInfoList; // 0x20
|
||||||
LegoTranInfoList* m_tranInfoList2; // 0x24
|
LegoTranInfoList* m_tranInfoList2; // 0x24
|
||||||
undefined4 m_unk0x28[2]; // 0x28
|
MxPresenter* m_unk0x28[2]; // 0x28
|
||||||
undefined4 m_unk0x30[2]; // 0x30
|
MxPresenter* m_unk0x30[2]; // 0x30
|
||||||
undefined m_unk0x38; // 0x38
|
undefined m_unk0x38; // 0x38
|
||||||
MxBool m_unk0x39; // 0x39
|
MxBool m_unk0x39; // 0x39
|
||||||
undefined m_unk0x3a; // 0x3a
|
undefined m_unk0x3a; // 0x3a
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "mxcompositepresenter.h"
|
#include "mxcompositepresenter.h"
|
||||||
|
|
||||||
|
class LegoAnimPresenter;
|
||||||
class LegoWorld;
|
class LegoWorld;
|
||||||
struct LegoTranInfo;
|
struct LegoTranInfo;
|
||||||
|
|
||||||
|
@ -43,17 +44,17 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
|
||||||
MxBool FUN_1004b8b0();
|
MxBool FUN_1004b8b0();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MxPresenter* m_unk0x4c; // 0x4c
|
LegoAnimPresenter* m_unk0x4c; // 0x4c
|
||||||
undefined4 m_unk0x50; // 0x50
|
undefined4 m_unk0x50; // 0x50
|
||||||
undefined4 m_unk0x54; // 0x54
|
undefined4 m_unk0x54; // 0x54
|
||||||
undefined m_unk0x58; // 0x58
|
undefined m_unk0x58; // 0x58
|
||||||
MxBool m_unk0x59; // 0x59
|
MxBool m_unk0x59; // 0x59
|
||||||
MxU32 m_animmanId; // 0x5c
|
MxU32 m_animmanId; // 0x5c
|
||||||
LegoTranInfo* m_tranInfo; // 0x60
|
LegoTranInfo* m_tranInfo; // 0x60
|
||||||
LegoWorld* m_unk0x64; // 0x64
|
LegoWorld* m_unk0x64; // 0x64
|
||||||
undefined4 m_unk0x68; // 0x68
|
undefined4 m_unk0x68; // 0x68
|
||||||
undefined4 m_unk0x6c; // 0x6c
|
undefined4 m_unk0x6c; // 0x6c
|
||||||
undefined4 m_unk0x70; // 0x70
|
undefined4 m_unk0x70; // 0x70
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LEGOANIMMMPRESENTER_H
|
#endif // LEGOANIMMMPRESENTER_H
|
||||||
|
|
|
@ -69,7 +69,7 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
||||||
return m_unk0x68;
|
return m_unk0x68;
|
||||||
} // vtable+0x9c
|
} // vtable+0x9c
|
||||||
|
|
||||||
virtual void VTable0xa0(); // vtable+0xa0
|
virtual void VTable0xa0(Matrix4*); // vtable+0xa0
|
||||||
|
|
||||||
void FUN_1006d680(LegoAnimActor* p_actor, MxFloat p_value);
|
void FUN_1006d680(LegoAnimActor* p_actor, MxFloat p_value);
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,8 @@ struct LegoTranInfo {
|
||||||
MxBool m_unk0x14; // 0x14
|
MxBool m_unk0x14; // 0x14
|
||||||
MxBool m_unk0x15; // 0x15
|
MxBool m_unk0x15; // 0x15
|
||||||
MxU32 m_objectId; // 0x18
|
MxU32 m_objectId; // 0x18
|
||||||
undefined4* m_unk0x1c; // 0x1c
|
MxPresenter** m_unk0x1c; // 0x1c
|
||||||
undefined4* m_unk0x20; // 0x20
|
MxPresenter** m_unk0x20; // 0x20
|
||||||
LegoAnimMMPresenter* m_presenter; // 0x24
|
LegoAnimMMPresenter* m_presenter; // 0x24
|
||||||
MxBool m_unk0x28; // 0x28
|
MxBool m_unk0x28; // 0x28
|
||||||
MxBool m_unk0x29; // 0x29
|
MxBool m_unk0x29; // 0x29
|
||||||
|
|
|
@ -156,8 +156,8 @@ MxResult LegoAnimationManager::LoadScriptInfo(MxS32 p_scriptIndex)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < (MxS32) _countof(m_unk0x28); i++) {
|
for (i = 0; i < (MxS32) _countof(m_unk0x28); i++) {
|
||||||
m_unk0x28[i] = 0;
|
m_unk0x28[i] = NULL;
|
||||||
m_unk0x30[i] = 0;
|
m_unk0x30[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_unk0x38 = 0;
|
m_unk0x38 = 0;
|
||||||
|
|
|
@ -68,7 +68,7 @@ MxResult LegoAnimMMPresenter::StartAction(MxStreamController* p_controller, MxDS
|
||||||
presenter->SetTickleState(MxPresenter::e_idle);
|
presenter->SetTickleState(MxPresenter::e_idle);
|
||||||
|
|
||||||
if (presenter->IsA("LegoAnimPresenter") || presenter->IsA("LegoLoopingAnimPresenter")) {
|
if (presenter->IsA("LegoAnimPresenter") || presenter->IsA("LegoLoopingAnimPresenter")) {
|
||||||
m_unk0x4c = presenter;
|
m_unk0x4c = (LegoAnimPresenter*) presenter;
|
||||||
}
|
}
|
||||||
success = TRUE;
|
success = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -101,10 +101,27 @@ void LegoAnimMMPresenter::EndAction()
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1004b140
|
// FUNCTION: LEGO1 0x1004b140
|
||||||
|
// FUNCTION: BETA10 0x1004c197
|
||||||
void LegoAnimMMPresenter::ReadyTickle()
|
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
|
// STUB: LEGO1 0x1004b1c0
|
||||||
|
|
|
@ -730,7 +730,7 @@ void LegoAnimPresenter::ParseExtra()
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1006c570
|
// STUB: LEGO1 0x1006c570
|
||||||
void LegoAnimPresenter::VTable0xa0()
|
void LegoAnimPresenter::VTable0xa0(Matrix4*)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue