Implement/match LegoAnimMMPresenter Streaming/RepeatingTickle and Notify (#825)

This commit is contained in:
Christian Semmler 2024-04-20 10:24:12 -04:00 committed by GitHub
parent 9cc5df8c40
commit 8d729f77b7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 40 additions and 7 deletions

View file

@ -44,6 +44,8 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
MxBool FUN_1004b8b0(); MxBool FUN_1004b8b0();
private: private:
MxBool FUN_1004b450();
LegoAnimPresenter* m_unk0x4c; // 0x4c LegoAnimPresenter* m_unk0x4c; // 0x4c
undefined4 m_unk0x50; // 0x50 undefined4 m_unk0x50; // 0x50
undefined4 m_unk0x54; // 0x54 undefined4 m_unk0x54; // 0x54

View file

@ -139,29 +139,52 @@ void LegoAnimMMPresenter::StartingTickle()
} }
} }
// STUB: LEGO1 0x1004b220 // FUNCTION: LEGO1 0x1004b220
// FUNCTION: BETA10 0x1004c372
void LegoAnimMMPresenter::StreamingTickle() void LegoAnimMMPresenter::StreamingTickle()
{ {
// TODO if (FUN_1004b450()) {
ProgressTickleState(e_repeating);
}
} }
// STUB: LEGO1 0x1004b250 // FUNCTION: LEGO1 0x1004b250
// FUNCTION: BETA10 0x1004c3a4
void LegoAnimMMPresenter::RepeatingTickle() void LegoAnimMMPresenter::RepeatingTickle()
{ {
// TODO if (m_unk0x4c == NULL) {
ProgressTickleState(e_unk5);
}
else if (m_list.size() <= 1) {
if (m_list.front() == m_unk0x4c) {
m_unk0x4c->SetTickleState(e_done);
ProgressTickleState(e_unk5);
}
else {
ProgressTickleState(e_unk5);
}
}
} }
// FUNCTION: LEGO1 0x1004b2c0 // FUNCTION: LEGO1 0x1004b2c0
// FUNCTION: BETA10 0x1004c469
void LegoAnimMMPresenter::DoneTickle() void LegoAnimMMPresenter::DoneTickle()
{ {
// Empty // Empty
} }
// STUB: LEGO1 0x1004b2d0 // FUNCTION: LEGO1 0x1004b2d0
// FUNCTION: BETA10 0x1004c47f
MxLong LegoAnimMMPresenter::Notify(MxParam& p_param) MxLong LegoAnimMMPresenter::Notify(MxParam& p_param)
{ {
// TODO AUTOLOCK(m_criticalSection);
return 0;
if (((MxNotificationParam&) p_param).GetType() == c_notificationEndAction &&
((MxNotificationParam&) p_param).GetSender() == m_unk0x4c) {
m_unk0x4c = NULL;
}
return MxCompositePresenter::Notify(p_param);
} }
// FUNCTION: LEGO1 0x1004b360 // FUNCTION: LEGO1 0x1004b360
@ -200,6 +223,14 @@ void LegoAnimMMPresenter::ParseExtra()
} }
} }
// STUB: LEGO1 0x1004b450
// FUNCTION: BETA10 0x1004c71d
MxBool LegoAnimMMPresenter::FUN_1004b450()
{
// TODO
return TRUE;
}
// FUNCTION: LEGO1 0x1004b8b0 // FUNCTION: LEGO1 0x1004b8b0
// FUNCTION: BETA10 0x1004d104 // FUNCTION: BETA10 0x1004d104
MxBool LegoAnimMMPresenter::FUN_1004b8b0() MxBool LegoAnimMMPresenter::FUN_1004b8b0()