42 while (cursor.
Current(action)) {
44 const char* presenterName;
68 m_list.push_back(presenter);
138 MxCompositePresenterList::iterator it;
142 if (*it == presenter) {
153 if (cursor.
Find(action)) {
185 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
186 if (*it == presenter) {
223 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
224 if (*it == p_presenter) {
225 if (++it ==
m_list.end()) {
246 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
261 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
263 presenter->
Enable(p_enable);
270 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
MxDSAction * GetAction()
[AI] Direct access to the underlying action.
[AI] Composite presenter that manages a collection of child presenters, orchestrating their actions a...
void EndAction() override
[AI] Ends the composite action, terminating all child presenters and clearing action lists....
~MxCompositePresenter() override
[AI] Destructor, unregisters the presenter from the notification manager and properly cleans up conta...
MxCompositePresenterList m_list
[AI] List of owned child presenters that are managed by this MxCompositePresenter....
virtual void VTable0x60(MxPresenter *p_presenter)
[AI] Advance sequencing for serial multi-actions: promotes the next presenter in sequence to e_ready ...
MxCompositePresenter()
[AI] Default constructor; registers the composite presenter with the notification manager.
MxLong Notify(MxParam &p_param) override
[AI] Notifies the composite presenter of a particular event (such as end of sub-action or notificatio...
virtual void VTable0x58(MxEndActionNotificationParam &p_param)
[AI] Handler for "end action" notification, invoked when one of the child presenters finishes its ass...
void Enable(MxBool p_enable) override
[AI] Enables or disables this presenter and all child presenters.
virtual void VTable0x5c(MxNotificationParam &p_param)
[AI] Handler for generic presenter notification, such as state change.
void SetTickleState(TickleState p_tickleState) override
[AI] Change the tickle state of this composite presenter and propagate to each child.
MxResult StartAction(MxStreamController *p_controller, MxDSAction *p_action) override
[AI] Starts a composite action by creating child presenters for each action in a MxDSMultiAction list...
MxBool HasTickleStatePassed(TickleState p_tickleState) override
[AI] Checks if all child presenters have advanced past the given tickle state.
[AI] Convenience cursor class for iterating over an MxDSActionList.
[AI] A list (collection) of pointers to MxDSAction objects, supporting comparison,...
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
MxU32 GetFlags()
[AI] Returns the flag field for this action (bitmask).
MxBool IsA(const char *p_name) const override
[AI] Run-time type check, compares provided name with this or any ancestor type.
void SetOrigin(MxCore *p_origin)
[AI] Sets the origin core pointer for this action, if spatially transforming/localizing this action.
void SetFlags(MxU32 p_flags)
[AI] Sets the flag bitmask controlling action logic (enabled, looping, etc).
MxCore * GetOrigin()
[AI] Returns a pointer to the "origin" core object, which may be used to localize the action.
@ c_looping
[AI] Action or media should repeat in a loop [AI]
@ c_bit3
[AI] Unknown - possibly reserved [AI]
[AI] Represents a container for multiple MxDSAction objects, facilitating the grouping and management...
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
MxBool Current(T &p_obj)
[AI]
void Unregister(MxCore *p_listener)
[AI] Removes a previously registered listener and flushes any pending notifications for it.
void Register(MxCore *p_listener)
[AI] Registers a listener object to receive notifications.
MxResult Send(MxCore *p_listener, const MxNotificationParam &p_param)
[AI] Queues a notification to be sent to a specific registered listener.
[AI] Parameter object representing a single notification or event, carrying an identifier and sender ...
NotificationId GetNotification() const
[AI] Retrieves the current notification type of this parameter.
MxCore * GetSender() const
[AI] Retrieves the sender pointer associated with this notification.
[AI] Forward declaration for the factory responsible for constructing core objects from atom or type ...
virtual MxCore * Create(const char *p_name)
[AI] Creates a new instance of the class matching the provided string name.
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
virtual void SetTickleState(TickleState p_tickleState)
[AI] Forces the tickle state, advancing to the requested lifecycle stage.
virtual void EndAction()
[AI] Terminates the current action, notifies listeners and resets state.
void ProgressTickleState(TickleState p_tickleState)
[AI] Helper for advancing the presenter's tickle state and updating transition history.
virtual void Enable(MxBool p_enable)
[AI] Enables or disables this presenter (controls action flags accordingly).
virtual MxResult StartAction(MxStreamController *, MxDSAction *)
[AI] Initiates presenter for a new action, setting up context and state.
MxDSAction * m_action
[AI] The associated action currently being presented by this presenter.
MxS32 GetCurrentTickleState() const
[AI] Returns the current tickle state.
virtual MxBool HasTickleStatePassed(TickleState p_tickleState)
[AI] Checks if the specified tickle state has ever been passed since last reset.
TickleState
[AI] Represents the state of the presenter's tickle (update) lifecycle.
@ e_idle
[AI] Not processing an action.
@ e_ready
[AI] Prepared to start processing an action.
MxCriticalSection m_criticalSection
[AI] Thread synchronization for presenter state and data.
MxCompositePresenter * m_compositePresenter
[AI] Owner composite presenter, if any.
virtual MxResult AddToManager()
[AI] Optional registration with a manager (such as TickleManager); by default does nothing.
void SetCompositePresenter(MxCompositePresenter *p_compositePresenter)
[AI] Sets the composite presenter to notify/join on completion.
MxDSAction * GetAction() const
[AI] Returns the current action being presented.
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define FAILURE
[AI] Used to indicate a failed operation in result codes.
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
#define AUTOLOCK(CS)
[AI] Macro for automatic locking using the MxAutoLock class. This macro instantiates an MxAutoLock ob...
MxObjectFactory * ObjectFactory()
[AI] Returns the factory for creating core engine objects from atom/type ids.
MxNotificationManager * NotificationManager()
[AI] Returns the notification manager for system-wide state/update notifications.
@ c_notificationPresenter
[AI] Update or event from a Presenter [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
const char * PresenterNameDispatch(const MxDSAction &)
[AI] Provides a mapping from action object/type to the correct presenter handler class name based on ...