Isle
Loading...
Searching...
No Matches
mxactionnotificationparam.h
Go to the documentation of this file.
1#ifndef MXACTIONNOTIFICATIONPARAM_H
2#define MXACTIONNOTIFICATIONPARAM_H
3
4#include "mxdsaction.h"
6
7class MxPresenter;
8
12// VTABLE: LEGO1 0x100d8350
13// SIZE 0x14
15public:
21 MxActionNotificationParam(NotificationId p_type, MxCore* p_sender, MxDSAction* p_action, MxBool p_reallocAction)
22 : MxNotificationParam(p_type, p_sender)
23 {
24 MxDSAction* oldAction = p_action;
25 m_realloc = p_reallocAction;
26
27 if (p_reallocAction) {
28 m_action = new MxDSAction();
29 }
30 else {
31 m_action = oldAction;
32 return;
33 }
34
35 m_action->SetAtomId(oldAction->GetAtomId());
36 m_action->SetObjectId(oldAction->GetObjectId());
37 m_action->SetUnknown24(oldAction->GetUnknown24());
38 }
39
42 {
43 if (!m_realloc) {
44 return;
45 }
46
47 if (m_action) {
48 delete m_action;
49 }
50 }
51
54 MxNotificationParam* Clone() const override
55 {
57 } // vtable+0x04
58
62
63protected:
66};
67
70// VTABLE: LEGO1 0x100dc210
71// SIZE 0x14
73public:
80 NotificationId p_type,
81 MxCore* p_sender,
82 MxDSAction* p_action,
83 MxBool p_reallocAction
84 )
85 : MxActionNotificationParam(p_type, p_sender, p_action, p_reallocAction)
86 {
87 }
88
90 MxNotificationParam* Clone() const override; // vtable+0x04
91};
92
95// VTABLE: LEGO1 0x100d8358
96// SIZE 0x14
98public:
104 MxEndActionNotificationParam(NotificationId p_type, MxCore* p_sender, MxDSAction* p_action, MxBool p_reallocAction)
105 : MxActionNotificationParam(p_type, p_sender, p_action, p_reallocAction)
106 {
107 }
108
110 MxNotificationParam* Clone() const override
111 {
113 } // vtable+0x04
114};
115
119// VTABLE: LEGO1 0x100dc208
120// SIZE 0x18
122public:
127 MxType4NotificationParam(MxCore* p_sender, MxDSAction* p_action, MxPresenter* p_unk0x14)
129 {
130 m_unk0x14 = p_unk0x14;
131 }
132
134 MxNotificationParam* Clone() const override; // vtable+0x04
135
136private:
137 MxPresenter* m_unk0x14;
138};
139
140// SYNTHETIC: LEGO1 0x100511e0
141// MxActionNotificationParam::`scalar deleting destructor'
142
143// SYNTHETIC: LEGO1 0x100513a0
144// MxEndActionNotificationParam::`scalar deleting destructor'
145
146// SYNTHETIC: LEGO1 0x10051410
147// MxEndActionNotificationParam::~MxEndActionNotificationParam
148
149// SYNTHETIC: LEGO1 0x100b0430
150// MxStartActionNotificationParam::`scalar deleting destructor'
151
152// SYNTHETIC: LEGO1 0x100b04a0
153// MxStartActionNotificationParam::~MxStartActionNotificationParam
154
155// SYNTHETIC: LEGO1 0x100b05c0
156// MxType4NotificationParam::`scalar deleting destructor'
157
158// SYNTHETIC: LEGO1 0x100b0630
159// MxType4NotificationParam::~MxType4NotificationParam
160
161#endif
[AI] Notification parameter class that contains information about an MxDSAction, used for inter-objec...
MxActionNotificationParam(NotificationId p_type, MxCore *p_sender, MxDSAction *p_action, MxBool p_reallocAction)
[AI] Constructs the action notification parameter, optionally cloning the action if requested.
MxDSAction * GetAction()
[AI] Direct access to the underlying action.
~MxActionNotificationParam() override
[AI] Destructor releases the action if this object owns it (realloc flag set). [AI]
MxNotificationParam * Clone() const override
[AI] Creates a clone of this notification parameter with the same state.
MxDSAction * m_action
[AI] Associated action (owned if m_realloc is true). [AI]
MxBool m_realloc
[AI] TRUE if this object owns and should free m_action. [AI]
[AI] Base virtual class for all Mindscape engine (Mx) objects.
Definition: mxcore.h:15
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
const MxAtomId & GetAtomId()
[AI] Returns a const-reference to the object's atom identifier.
Definition: mxdsobject.h:133
virtual void SetAtomId(MxAtomId p_atomId)
[AI] Sets the atom id for this object instance, used for indexing or lookup.
Definition: mxdsobject.h:118
void SetUnknown24(MxS16 p_unk0x24)
[AI] Sets the unknown field at 0x24 (possibly version/state).
Definition: mxdsobject.h:151
MxS16 GetUnknown24()
[AI] Returns the unknown 0x24 value (may be data version or usage state). [AI]
Definition: mxdsobject.h:136
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
Definition: mxdsobject.h:147
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
Definition: mxdsobject.h:130
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
MxNotificationParam * Clone() const override
[AI] Returns a clone of this notification parameter, specializing the type for end-action....
MxEndActionNotificationParam(NotificationId p_type, MxCore *p_sender, MxDSAction *p_action, MxBool p_reallocAction)
[AI] Constructs an end-action notification param.
[AI] Parameter object representing a single notification or event, carrying an identifier and sender ...
MxCore * m_sender
[AI] Pointer to the MxCore instance that sent or originated this notification.
NotificationId m_type
[AI] Type of notification/event carried by this object (see NotificationId).
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
Definition: mxpresenter.h:20
[AI] Notification parameter marking the start of an action, specialization of MxActionNotificationPar...
MxStartActionNotificationParam(NotificationId p_type, MxCore *p_sender, MxDSAction *p_action, MxBool p_reallocAction)
[AI] Constructs a start-action notification param.
MxNotificationParam * Clone() const override
[AI] Returns a clone of this notification parameter. [AI]
[AI] Specialized notification parameter, used for notification type 4, extending MxActionNotification...
MxNotificationParam * Clone() const override
[AI] Returns a clone of this notification parameter. [AI]
MxType4NotificationParam(MxCore *p_sender, MxDSAction *p_action, MxPresenter *p_unk0x14)
[AI] Constructs a type 4 notification parameter carrying an action and a presenter pointer.
#define FALSE
Definition: d3drmdef.h:27
NotificationId
Several of those should be defined in LegoOmni.
@ c_notificationType4
[AI] Unspecified notification type [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
MxU8 MxBool
[AI]
Definition: mxtypes.h:124