Isle
Loading...
Searching...
No Matches
legoanimmmpresenter.h
Go to the documentation of this file.
1#ifndef LEGOANIMMMPRESENTER_H
2#define LEGOANIMMMPRESENTER_H
3
4// MxDSActionListCursor needs to be included before std::list
5// clang-format off
6#include "mxdsmultiaction.h"
7// clang-format on
9
11class LegoWorld;
12class LegoROI;
13struct LegoTranInfo;
14class MxMatrix;
15
16// VTABLE: LEGO1 0x100d7de8
17// SIZE 0x74
18
24public:
26 enum {
34 e_unk7
35 };
36
41
45 ~LegoAnimMMPresenter() override;
46
53 MxLong Notify(MxParam& p_param) override; // vtable+0x04
54
59 static const char* HandlerClassName()
60 {
61 // STRING: LEGO1 0x100f046c
62 return "LegoAnimMMPresenter";
63 }
64
69 const char* ClassName() const override // vtable+0x0c
70 {
71 return HandlerClassName();
72 }
73
80 MxBool IsA(const char* p_name) const override // vtable+0x10
81 {
82 return !strcmp(p_name, LegoAnimMMPresenter::ClassName()) || MxCompositePresenter::IsA(p_name);
83 }
84
88 void ReadyTickle() override; // vtable+0x18
89
93 void StartingTickle() override; // vtable+0x1c
94
98 void StreamingTickle() override; // vtable+0x20
99
103 void RepeatingTickle() override; // vtable+0x24
104
108 void DoneTickle() override; // vtable+0x2c
109
114 void ParseExtra() override; // vtable+0x30
115
122 MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
123
127 void EndAction() override; // vtable+0x40
128
133 void VTable0x60(MxPresenter* p_presenter) override; // vtable+0x60
134
140
144 void FUN_1004b840();
145
151
155 void FUN_1004b8c0();
156
161 LegoAnimPresenter* GetPresenter() { return m_presenter; }
162
163private:
164
169 MxBool FUN_1004b450();
170
176 MxBool FUN_1004b530(MxLong p_time);
177
183 MxBool FUN_1004b570(MxLong p_time);
184
190 MxBool FUN_1004b580(MxLong p_time);
191
197 MxBool FUN_1004b5b0(MxLong p_time);
198
204 MxBool FUN_1004b600(MxLong p_time);
205
211 MxBool FUN_1004b610(MxLong p_time);
212
218 MxBool FUN_1004b6b0(MxLong p_time);
219
225 MxBool FUN_1004b6d0(MxLong p_time);
226
230 LegoAnimPresenter* m_presenter; // 0x4c
231
235 MxLong m_unk0x50; // 0x50
236
240 undefined4 m_unk0x54; // 0x54
241
245 MxU8 m_unk0x58; // 0x58
246
250 MxU8 m_unk0x59; // 0x59
251
255 MxU32 m_animmanId; // 0x5c
256
260 LegoTranInfo* m_tranInfo; // 0x60
261
265 LegoWorld* m_world; // 0x64
266
270 MxMatrix* m_unk0x68; // 0x68
271
275 LegoROI** m_roiMap; // 0x6c
276
280 MxU32 m_roiMapSize; // 0x70
281};
282
283#endif // LEGOANIMMMPRESENTER_H
[AI] Composite presenter class that manages a multi-media animation sequence.
void DoneTickle() override
[AI] Tickle callback for the done state.
void FUN_1004b840()
[AI] Helper routine to end all actions except the central one, handle action teardown,...
void EndAction() override
[AI] Ends the composite action, unregisters and resets relevant state.
@ e_unk2
[AI] Step 2 in tickle progression.
@ e_unk5
[AI] Step 5 in tickle progression.
@ e_unk3
[AI] Step 3 in tickle progression.
@ e_unk0
[AI] Initial state for staged tickling.
@ e_unk4
[AI] Step 4 in tickle progression.
@ e_unk6
[AI] Step 6 in tickle progression.
@ e_unk1
[AI] Step 1 in tickle progression.
@ e_unk7
[AI] Final state for staged tickling.
MxBool FUN_1004b8b0()
[AI] Returns a boolean based on TranInfo, typically whether a specific transition flag is set.
~LegoAnimMMPresenter() override
[AI] Destructor.
void StartingTickle() override
[AI] Tickle callback for the starting state.
void ParseExtra() override
[AI] Parses the "Extra" field from the current action to extract TranInfo and animation manager ID fo...
LegoAnimMMPresenter()
[AI] Constructs a LegoAnimMMPresenter, initializing all members.
LegoAnimPresenter * GetPresenter()
[AI] Returns the main subordinate LegoAnimPresenter currently managed by this MM presenter.
MxBool FUN_1004b830()
[AI] Returns true if the presenter state has reached or surpassed e_unk6.
void VTable0x60(MxPresenter *p_presenter) override
[AI] (Internal use) Handles a state transfer/notification from a child presenter to this composite pr...
void RepeatingTickle() override
[AI] Tickle callback for the repeating state.
static const char * HandlerClassName()
[AI] Gets the class handler name for this presenter type.
MxBool IsA(const char *p_name) const override
[AI] Returns whether this instance is of the given class or inherits from it.
const char * ClassName() const override
[AI] Returns the runtime class name.
MxResult StartAction(MxStreamController *p_controller, MxDSAction *p_action) override
[AI] Starts a composite action, creating subordinate presenters for each child action.
void FUN_1004b8c0()
[AI] Calls the state transition handler, forcing the presenter's tickle progression for special handl...
MxLong Notify(MxParam &p_param) override
[AI] Handles notifications for the presenter.
void StreamingTickle() override
[AI] Tickle callback for the streaming state.
void ReadyTickle() override
[AI] Tickle callback for the ready state.
[AI] Handles playback and synchronization of animated LEGO objects, including variable substitution,...
[AI] Represents a Real-time Object Instance enriched with LEGO-specific functionality.
Definition: legoroi.h:43
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
Definition: legoworld.h:49
[AI] Composite presenter that manages a collection of child presenters, orchestrating their actions a...
MxBool IsA(const char *p_name) const override
[AI] Runtime type checking for presenter class hierarchy, supporting parent/child class checks.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
Definition: mxmatrix.h:16
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
Definition: mxparam.h:7
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
Definition: mxpresenter.h:20
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
#define override
Definition: compat.h:21
unsigned int undefined4
Definition: decomp.h:28
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
int MxLong
[AI]
Definition: mxtypes.h:83
unsigned char MxU8
[AI]
Definition: mxtypes.h:8
unsigned int MxU32
[AI]
Definition: mxtypes.h:32
[AI] Holds transformation and animation information for a LEGO object/ROI, especially in the context ...
Definition: legotraninfo.h:17