mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-26 09:41:15 +00:00
IsleActor::Create, IsleActor::Notify
This commit is contained in:
parent
4795eac37c
commit
a5098f0139
@ -2,9 +2,11 @@
|
|||||||
#define ISLEACTOR_H
|
#define ISLEACTOR_H
|
||||||
|
|
||||||
#include "legoactor.h"
|
#include "legoactor.h"
|
||||||
|
#include "legoworld.h"
|
||||||
|
#include "mxactionnotificationparam.h"
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d5178
|
// VTABLE: LEGO1 0x100d5178
|
||||||
// SIZE 0x78
|
// SIZE 0x7c
|
||||||
class IsleActor : public LegoActor {
|
class IsleActor : public LegoActor {
|
||||||
public:
|
public:
|
||||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
@ -23,6 +25,30 @@ class IsleActor : public LegoActor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e5f0
|
||||||
|
virtual undefined4 VTable0x68() { return 0; } // vtable+0x68
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e600
|
||||||
|
virtual undefined4 VTable0x6c() { return 0; } // vtable+0x6c
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e610
|
||||||
|
virtual undefined4 VTable0x70() { return 0; } // vtable+0x70
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e620
|
||||||
|
virtual undefined4 HandleEndAction(MxEndActionNotificationParam&) { return 0; } // vtable+0x74
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e630
|
||||||
|
virtual undefined4 HandleButtonDown(MxNotificationParam&) { return 0; } // vtable+0x78
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e640
|
||||||
|
virtual undefined4 HandleButtonUp(MxNotificationParam&) { return 0; } // vtable+0x7c
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e650
|
||||||
|
virtual undefined4 VTable0x80(MxParam&) { return 0; } // vtable+0x80
|
||||||
|
|
||||||
|
private:
|
||||||
|
LegoWorld* m_world; // 0x78
|
||||||
};
|
};
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x1000e940
|
// SYNTHETIC: LEGO1 0x1000e940
|
||||||
|
|||||||
@ -32,7 +32,6 @@ class Pizza : public IsleActor {
|
|||||||
// Pizza::`scalar deleting destructor'
|
// Pizza::`scalar deleting destructor'
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined4 m_unk0x78;
|
|
||||||
undefined4 m_unk0x7c;
|
undefined4 m_unk0x7c;
|
||||||
undefined4 m_unk0x80;
|
undefined4 m_unk0x80;
|
||||||
undefined4 m_unk0x84;
|
undefined4 m_unk0x84;
|
||||||
|
|||||||
@ -28,7 +28,6 @@ class Pizzeria : public IsleActor {
|
|||||||
// Pizzeria::`scalar deleting destructor'
|
// Pizzeria::`scalar deleting destructor'
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined4 m_unk0x78; // 0x78
|
|
||||||
undefined4 m_unk0x7c; // 0x7c
|
undefined4 m_unk0x7c; // 0x7c
|
||||||
undefined4 m_unk0x80; // 0x80
|
undefined4 m_unk0x80; // 0x80
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,18 +1,55 @@
|
|||||||
#include "isleactor.h"
|
#include "isleactor.h"
|
||||||
|
|
||||||
// NOTE: This is copied from base class LegoActor. IsleActor may in fact be larger but we don't know yet.
|
#include "legoentity.h"
|
||||||
DECOMP_SIZE_ASSERT(IsleActor, 0x78)
|
#include "legoomni.h"
|
||||||
|
#include "legoworld.h"
|
||||||
|
#include "misc.h"
|
||||||
|
#include "mxnotificationparam.h"
|
||||||
|
|
||||||
// STUB: LEGO1 0x1002c780
|
DECOMP_SIZE_ASSERT(IsleActor, 0x7c)
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1002c780
|
||||||
MxResult IsleActor::Create(MxDSAction& p_dsAction)
|
MxResult IsleActor::Create(MxDSAction& p_dsAction)
|
||||||
{
|
{
|
||||||
// TODO
|
MxResult ret = LegoEntity::Create(p_dsAction);
|
||||||
return SUCCESS;
|
|
||||||
|
if (ret == SUCCESS) {
|
||||||
|
m_world = CurrentWorld();
|
||||||
|
if (!m_world) {
|
||||||
|
ret = FAILURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1002c7b0
|
// FUNCTION: LEGO1 0x1002c7b0
|
||||||
MxLong IsleActor::Notify(MxParam& p_param)
|
MxLong IsleActor::Notify(MxParam& p_param)
|
||||||
{
|
{
|
||||||
// TODO
|
MxLong result = 0;
|
||||||
return 0;
|
|
||||||
|
switch (((MxNotificationParam&) p_param).GetNotification()) {
|
||||||
|
case c_notificationType0:
|
||||||
|
result = this->VTable0x6c();
|
||||||
|
break;
|
||||||
|
case c_notificationEndAction:
|
||||||
|
result = this->HandleEndAction((MxEndActionNotificationParam&) p_param);
|
||||||
|
break;
|
||||||
|
case c_notificationButtonUp:
|
||||||
|
result = this->HandleButtonUp((MxNotificationParam&) p_param);
|
||||||
|
break;
|
||||||
|
case c_notificationButtonDown:
|
||||||
|
result = this->HandleButtonDown((MxNotificationParam&) p_param);
|
||||||
|
break;
|
||||||
|
case c_notificationType11:
|
||||||
|
result = this->VTable0x68();
|
||||||
|
break;
|
||||||
|
case c_notificationType18:
|
||||||
|
result = this->VTable0x70();
|
||||||
|
break;
|
||||||
|
case c_notificationType19:
|
||||||
|
result = this->VTable0x80((MxParam&) p_param);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user