mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 23:48:12 -05:00
Implement/match LegoAnimMMPresenter::EndAction (#826)
* Implement/match LegoAnimMMPresenter::EndAction * Add missing vtable
This commit is contained in:
parent
8d729f77b7
commit
c617139d5b
2 changed files with 41 additions and 2 deletions
|
@ -13,6 +13,7 @@
|
|||
#include "mxnotificationmanager.h"
|
||||
#include "mxobjectfactory.h"
|
||||
#include "mxtimer.h"
|
||||
#include "mxtype18notificationparam.h"
|
||||
#include "mxutilities.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoAnimMMPresenter, 0x74)
|
||||
|
@ -96,10 +97,30 @@ MxResult LegoAnimMMPresenter::StartAction(MxStreamController* p_controller, MxDS
|
|||
return result;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1004aec0
|
||||
// FUNCTION: LEGO1 0x1004aec0
|
||||
// FUNCTION: BETA10 0x1004c01a
|
||||
void LegoAnimMMPresenter::EndAction()
|
||||
{
|
||||
// TODO
|
||||
if (m_tranInfo != NULL && m_tranInfo->m_unk0x15 && m_tranInfo->m_unk0x1c != NULL &&
|
||||
m_tranInfo->m_unk0x1c[1] != NULL) {
|
||||
m_tranInfo->m_unk0x1c[1]->Enable(FALSE);
|
||||
m_tranInfo->m_unk0x1c[1]->Enable(TRUE);
|
||||
}
|
||||
|
||||
m_tranInfo = NULL;
|
||||
|
||||
MxType18NotificationParam param(c_notificationType18, NULL, m_animmanId);
|
||||
if (m_animmanId != 0) {
|
||||
NotificationManager()->Send(AnimationManager(), ¶m);
|
||||
}
|
||||
|
||||
if (m_action != NULL) {
|
||||
MxCompositePresenter::EndAction();
|
||||
|
||||
if (m_unk0x64 != NULL) {
|
||||
m_unk0x64->Remove(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004b140
|
||||
|
|
|
@ -7,8 +7,26 @@
|
|||
// VTABLE: LEGO1 0x100d7e80
|
||||
// SIZE 0x10
|
||||
class MxType18NotificationParam : public MxNotificationParam {
|
||||
public:
|
||||
MxType18NotificationParam(NotificationId p_type, MxCore* p_sender, undefined4 p_unk0x0c)
|
||||
: MxNotificationParam(p_type, p_sender), m_unk0x0c(p_unk0x0c)
|
||||
{
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004afd0
|
||||
MxNotificationParam* Clone() override
|
||||
{
|
||||
return new MxType18NotificationParam(m_type, m_sender, m_unk0x0c);
|
||||
} // vtable+0x04
|
||||
|
||||
protected:
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004b080
|
||||
// MxType18NotificationParam::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004b0f0
|
||||
// MxType18NotificationParam::~MxType18NotificationParam
|
||||
|
||||
#endif // MXTYPE18NOTIFICATIONPARAM_H
|
||||
|
|
Loading…
Reference in a new issue