Isle
Loading...
Searching...
No Matches
LegoAnimMMPresenter Class Reference

[AI] Composite presenter class that manages a multi-media animation sequence. More...

#include <legoanimmmpresenter.h>

Inheritance diagram for LegoAnimMMPresenter:
Collaboration diagram for LegoAnimMMPresenter:

Public Types

enum  {
  e_unk0 , e_unk1 , e_unk2 , e_unk3 ,
  e_unk4 , e_unk5 , e_unk6 , e_unk7
}
 [AI] States/steps for a staged tickle sequence through the complex animation. More...
 
- Public Types inherited from MxPresenter
enum  TickleState {
  e_idle = 0 , e_ready , e_starting , e_streaming ,
  e_repeating , e_freezing , e_done
}
 [AI] Represents the state of the presenter's tickle (update) lifecycle. More...
 

Public Member Functions

 LegoAnimMMPresenter ()
 [AI] Constructs a LegoAnimMMPresenter, initializing all members. More...
 
 ~LegoAnimMMPresenter () override
 [AI] Destructor. More...
 
MxLong Notify (MxParam &p_param) override
 [AI] Handles notifications for the presenter. More...
 
const char * ClassName () const override
 [AI] Returns the runtime class name. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Returns whether this instance is of the given class or inherits from it. More...
 
void ReadyTickle () override
 [AI] Tickle callback for the ready state. More...
 
void StartingTickle () override
 [AI] Tickle callback for the starting state. More...
 
void StreamingTickle () override
 [AI] Tickle callback for the streaming state. More...
 
void RepeatingTickle () override
 [AI] Tickle callback for the repeating state. More...
 
void DoneTickle () override
 [AI] Tickle callback for the done state. More...
 
void ParseExtra () override
 [AI] Parses the "Extra" field from the current action to extract TranInfo and animation manager ID for this presenter. More...
 
MxResult StartAction (MxStreamController *p_controller, MxDSAction *p_action) override
 [AI] Starts a composite action, creating subordinate presenters for each child action. More...
 
void EndAction () override
 [AI] Ends the composite action, unregisters and resets relevant state. More...
 
void VTable0x60 (MxPresenter *p_presenter) override
 [AI] (Internal use) Handles a state transfer/notification from a child presenter to this composite presenter. More...
 
MxBool FUN_1004b830 ()
 [AI] Returns true if the presenter state has reached or surpassed e_unk6. More...
 
void FUN_1004b840 ()
 [AI] Helper routine to end all actions except the central one, handle action teardown, and trigger animation progression. More...
 
MxBool FUN_1004b8b0 ()
 [AI] Returns a boolean based on TranInfo, typically whether a specific transition flag is set. More...
 
void FUN_1004b8c0 ()
 [AI] Calls the state transition handler, forcing the presenter's tickle progression for special handling. More...
 
LegoAnimPresenterGetPresenter ()
 [AI] Returns the main subordinate LegoAnimPresenter currently managed by this MM presenter. More...
 
- Public Member Functions inherited from MxCompositePresenter
 MxCompositePresenter ()
 [AI] Default constructor; registers the composite presenter with the notification manager. More...
 
 ~MxCompositePresenter () override
 [AI] Destructor, unregisters the presenter from the notification manager and properly cleans up contained presenters. More...
 
MxLong Notify (MxParam &p_param) override
 [AI] Notifies the composite presenter of a particular event (such as end of sub-action or notification from a child presenter). More...
 
const char * ClassName () const override
 [AI] Returns the dynamic class name; used for runtime type identification. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Runtime type checking for presenter class hierarchy, supporting parent/child class checks. More...
 
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 and starting them. More...
 
void EndAction () override
 [AI] Ends the composite action, terminating all child presenters and clearing action lists. Sends end notifications if needed. More...
 
void SetTickleState (TickleState p_tickleState) override
 [AI] Change the tickle state of this composite presenter and propagate to each child. More...
 
MxBool HasTickleStatePassed (TickleState p_tickleState) override
 [AI] Checks if all child presenters have advanced past the given tickle state. More...
 
void Enable (MxBool p_enable) override
 [AI] Enables or disables this presenter and all child presenters. More...
 
virtual void VTable0x58 (MxEndActionNotificationParam &p_param)
 [AI] Handler for "end action" notification, invoked when one of the child presenters finishes its assigned sub-action. More...
 
virtual void VTable0x5c (MxNotificationParam &p_param)
 [AI] Handler for generic presenter notification, such as state change. More...
 
virtual void VTable0x60 (MxPresenter *p_presenter)
 [AI] Advance sequencing for serial multi-actions: promotes the next presenter in sequence to e_ready state after predecessor finishes. More...
 
virtual MxBool VTable0x64 (undefined4 p_undefined)
 [AI] Delegated state/mode checking. More...
 
MxCompositePresenterListGetList ()
 [AI] Returns reference to the internal list of child presenters managed by this composite. More...
 
- Public Member Functions inherited from MxPresenter
 MxPresenter ()
 [AI] Constructor. Initializes internal tickle state and other members. More...
 
MxResult Tickle () override
 [AI] Main tickle handler, called periodically to progress presenter's internal state. More...
 
virtual void VTable0x14 ()
 [AI] Reserved for future or specialized use in derived classes. More...
 
virtual void ReadyTickle ()
 [AI] Handles the transition and setup for the Ready state. Parses extra action data and advances state. More...
 
virtual void StartingTickle ()
 [AI] Handles actions required when first starting presentation. Advances to streaming state. More...
 
virtual void StreamingTickle ()
 [AI] Handles periodic updates during the streaming/presentation stage. Advances to repeating state. More...
 
virtual void RepeatingTickle ()
 [AI] Handles updates when in a repeating (looping) stage. Advances to freezing state. More...
 
virtual void FreezingTickle ()
 [AI] Handles updates during the freezing/suspended state. Advances to done state. More...
 
 ~MxPresenter () override
 [AI] Destructor, cleans up resources (base class: does nothing beyond Init). More...
 
virtual MxResult AddToManager ()
 [AI] Optional registration with a manager (such as TickleManager); by default does nothing. More...
 
virtual void Destroy ()
 [AI] Resets presenter state or cleans up resources after completion/removal. More...
 
virtual MxResult StartAction (MxStreamController *, MxDSAction *)
 [AI] Initiates presenter for a new action, setting up context and state. More...
 
virtual void EndAction ()
 [AI] Terminates the current action, notifies listeners and resets state. More...
 
virtual void SetTickleState (TickleState p_tickleState)
 [AI] Forces the tickle state, advancing to the requested lifecycle stage. More...
 
virtual MxBool HasTickleStatePassed (TickleState p_tickleState)
 [AI] Checks if the specified tickle state has ever been passed since last reset. More...
 
virtual MxResult PutData ()
 [AI] Allows the presenter to submit pending results or output to the engine. More...
 
virtual MxBool IsHit (MxS32 p_x, MxS32 p_y)
 [AI] Returns TRUE if the given (x, y) falls within hit-test bounds for the presenter (e.g. More...
 
virtual void Enable (MxBool p_enable)
 [AI] Enables or disables this presenter (controls action flags accordingly). More...
 
const char * ClassName () const override
 [AI] Returns the run-time class name for this presenter. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Determines if this object is of (or inherits) the specified named class. More...
 
MxEntityCreateEntity (const char *p_defaultName)
 [AI] Creates an entity based on action 'extra' data, or uses the provided default name. More...
 
void SendToCompositePresenter (MxOmni *p_omni)
 [AI] Notifies a composite presenter (if one exists) that this presenter wishes to join a group. More...
 
MxBool IsEnabled ()
 [AI] Returns whether this presenter is logically enabled (based on the associated action's flags). More...
 
MxS32 GetCurrentTickleState () const
 [AI] Returns the current tickle state. More...
 
MxPoint32 GetLocation () const
 [AI] Returns the presenter's screen location (in pixels). More...
 
MxS32 GetX () const
 [AI] Returns the X coordinate of screen location. More...
 
MxS32 GetY () const
 [AI] Returns the Y coordinate of screen location. More...
 
MxS32 GetDisplayZ () const
 [AI] Returns the display Z (depth) order. More...
 
MxDSActionGetAction () const
 [AI] Returns the current action being presented. More...
 
void SetAction (MxDSAction *p_action)
 [AI] Sets the action associated with this presenter. More...
 
void SetCompositePresenter (MxCompositePresenter *p_compositePresenter)
 [AI] Sets the composite presenter to notify/join on completion. More...
 
void SetDisplayZ (MxS32 p_displayZ)
 [AI] Sets the display Z (depth) order for the presenter. More...
 
- Public Member Functions inherited from MxCore
 MxCore ()
 [AI] Constructs a new MxCore object and assigns it a unique id. More...
 
virtual ~MxCore ()
 [AI] Virtual destructor. Required for correct polymorphic cleanup in derived classes. More...
 
virtual MxLong Notify (MxParam &p_param)
 [AI] Virtual callback notification mechanism. More...
 
virtual MxResult Tickle ()
 [AI] Called by tickle managers to allow the object to update itself. More...
 
virtual const char * ClassName () const
 [AI] Returns the runtime class name of this object. More...
 
virtual MxBool IsA (const char *p_name) const
 [AI] Checks whether this object's class type or parents match the given name. More...
 
MxU32 GetId ()
 [AI] Gets the unique (per-process) id assigned to this object instance. More...
 

Static Public Member Functions

static const char * HandlerClassName ()
 [AI] Gets the class handler name for this presenter type. More...
 
- Static Public Member Functions inherited from MxCompositePresenter
static const char * HandlerClassName ()
 [AI] Returns the handler class name ("MxCompositePresenter"). More...
 
- Static Public Member Functions inherited from MxPresenter
static const char * HandlerClassName ()
 [AI] Returns the handler class name for identification and reflection purposes. More...
 

Additional Inherited Members

- Protected Member Functions inherited from MxPresenter
virtual void DoneTickle ()
 [AI] Handles any post-completion logic, resetting to idle state. More...
 
virtual void ParseExtra ()
 [AI] Parses additional data from the associated action for configuration or world interaction. More...
 
void ProgressTickleState (TickleState p_tickleState)
 [AI] Helper for advancing the presenter's tickle state and updating transition history. More...
 
void Init ()
 [AI] Initializes object state to post-construction defaults. More...
 
- Protected Attributes inherited from MxCompositePresenter
MxCompositePresenterList m_list
 [AI] List of owned child presenters that are managed by this MxCompositePresenter. Actions are created/shutdown with this list. More...
 
- Protected Attributes inherited from MxPresenter
TickleState m_currentTickleState
 [AI] Current state in the tickle lifecycle. More...
 
MxU32 m_previousTickleStates
 [AI] Bitfield representing all tickle states that have already occurred during this lifetime. More...
 
MxPoint32 m_location
 [AI] 2D display location for the presenter. More...
 
MxS32 m_displayZ
 [AI] Z-order value for display stacking. More...
 
MxDSActionm_action
 [AI] The associated action currently being presented by this presenter. More...
 
MxCriticalSection m_criticalSection
 [AI] Thread synchronization for presenter state and data. More...
 
MxCompositePresenterm_compositePresenter
 [AI] Owner composite presenter, if any. More...
 

Detailed Description

[AI] Composite presenter class that manages a multi-media animation sequence.

It can coordinate several subordinate presenters, orchestrate animations, and manage presenter communications and world/ROI associations for multi-part scripted Lego animation events.

[AI] Inherits from MxCompositePresenter, allowing multiple subordinate presenters to be managed as part of a composite animation or sequence. Used for "multi-media" (MM) complex Lego animation handling, it coordinates the "tickle" progress, observers, notifications, and resource mapping.

Definition at line 23 of file legoanimmmpresenter.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

[AI] States/steps for a staged tickle sequence through the complex animation.

Enumerator
e_unk0 

[AI] Initial state for staged tickling.

e_unk1 

[AI] Step 1 in tickle progression.

e_unk2 

[AI] Step 2 in tickle progression.

e_unk3 

[AI] Step 3 in tickle progression.

e_unk4 

[AI] Step 4 in tickle progression.

e_unk5 

[AI] Step 5 in tickle progression.

e_unk6 

[AI] Step 6 in tickle progression.

e_unk7 

[AI] Final state for staged tickling.

Definition at line 26 of file legoanimmmpresenter.h.

Constructor & Destructor Documentation

◆ LegoAnimMMPresenter()

LegoAnimMMPresenter::LegoAnimMMPresenter ( )

[AI] Constructs a LegoAnimMMPresenter, initializing all members.

Definition at line 26 of file legoanimmmpresenter.cpp.

◆ ~LegoAnimMMPresenter()

LegoAnimMMPresenter::~LegoAnimMMPresenter ( )
override

[AI] Destructor.

Cleans up world registration and supporting objects.

Definition at line 41 of file legoanimmmpresenter.cpp.

Member Function Documentation

◆ ClassName()

const char * LegoAnimMMPresenter::ClassName ( ) const
inlineoverridevirtual

[AI] Returns the runtime class name.

Returns
Handler class name (HandlerClassName()). [AI]

Reimplemented from MxCore.

Definition at line 69 of file legoanimmmpresenter.h.

◆ DoneTickle()

void LegoAnimMMPresenter::DoneTickle ( )
overridevirtual

[AI] Tickle callback for the done state.

No default operation; completion logic may be customized in subclasses.

Reimplemented from MxPresenter.

Definition at line 208 of file legoanimmmpresenter.cpp.

◆ EndAction()

void LegoAnimMMPresenter::EndAction ( )
overridevirtual

[AI] Ends the composite action, unregisters and resets relevant state.

Reimplemented from MxPresenter.

Definition at line 118 of file legoanimmmpresenter.cpp.

◆ FUN_1004b830()

MxBool LegoAnimMMPresenter::FUN_1004b830 ( )

[AI] Returns true if the presenter state has reached or surpassed e_unk6.

Returns
True if the state is at least e_unk6. [AI]

Definition at line 470 of file legoanimmmpresenter.cpp.

◆ FUN_1004b840()

void LegoAnimMMPresenter::FUN_1004b840 ( )

[AI] Helper routine to end all actions except the central one, handle action teardown, and trigger animation progression.

Definition at line 477 of file legoanimmmpresenter.cpp.

◆ FUN_1004b8b0()

MxBool LegoAnimMMPresenter::FUN_1004b8b0 ( )

[AI] Returns a boolean based on TranInfo, typically whether a specific transition flag is set.

Returns
Value from TranInfo transition state field, or TRUE if not present. [AI]

Definition at line 501 of file legoanimmmpresenter.cpp.

◆ FUN_1004b8c0()

void LegoAnimMMPresenter::FUN_1004b8c0 ( )

[AI] Calls the state transition handler, forcing the presenter's tickle progression for special handling.

Definition at line 508 of file legoanimmmpresenter.cpp.

◆ GetPresenter()

LegoAnimPresenter * LegoAnimMMPresenter::GetPresenter ( )
inline

[AI] Returns the main subordinate LegoAnimPresenter currently managed by this MM presenter.

Returns
Pointer to the current LegoAnimPresenter. [AI]

Definition at line 161 of file legoanimmmpresenter.h.

◆ HandlerClassName()

static const char * LegoAnimMMPresenter::HandlerClassName ( )
inlinestatic

[AI] Gets the class handler name for this presenter type.

Returns
The string "LegoAnimMMPresenter". [AI]

Definition at line 59 of file legoanimmmpresenter.h.

◆ IsA()

MxBool LegoAnimMMPresenter::IsA ( const char *  p_name) const
inlineoverridevirtual

[AI] Returns whether this instance is of the given class or inherits from it.

[AI] Accepts either "LegoAnimMMPresenter" or any class accepted by MxCompositePresenter::IsA

Parameters
p_nameClass name string to test. [AI]
Returns
True if this is or inherits from class p_name. [AI]

Reimplemented from MxCore.

Definition at line 80 of file legoanimmmpresenter.h.

◆ Notify()

MxLong LegoAnimMMPresenter::Notify ( MxParam p_param)
overridevirtual

[AI] Handles notifications for the presenter.

[AI] Reacts to end-of-action notifications and forwards others to the base composite presenter.

Parameters
p_paramThe notification parameter structure. [AI]
Returns
See MxCompositePresenter::Notify for result semantics. [AI]

Reimplemented from MxCore.

Definition at line 215 of file legoanimmmpresenter.cpp.

◆ ParseExtra()

void LegoAnimMMPresenter::ParseExtra ( )
overridevirtual

[AI] Parses the "Extra" field from the current action to extract TranInfo and animation manager ID for this presenter.

[AI] Looks for "ANIMMAN_ID" in the extra and acquires TranInfo and related references.

Reimplemented from MxPresenter.

Definition at line 238 of file legoanimmmpresenter.cpp.

◆ ReadyTickle()

void LegoAnimMMPresenter::ReadyTickle ( )
overridevirtual

[AI] Tickle callback for the ready state.

Prepares presenter state and transitions tickle sequence.

Reimplemented from MxPresenter.

Definition at line 144 of file legoanimmmpresenter.cpp.

◆ RepeatingTickle()

void LegoAnimMMPresenter::RepeatingTickle ( )
overridevirtual

[AI] Tickle callback for the repeating state.

Advances towards freezing/completion once conditions are met.

Reimplemented from MxPresenter.

Definition at line 190 of file legoanimmmpresenter.cpp.

◆ StartAction()

MxResult LegoAnimMMPresenter::StartAction ( MxStreamController p_controller,
MxDSAction p_action 
)
overridevirtual

[AI] Starts a composite action, creating subordinate presenters for each child action.

Parameters
p_controllerStream controller supplying data for the animation. [AI]
p_actionThe multi-action that this presenter is to execute. [AI]
Returns
SUCCESS if setup completed, FAILURE otherwise. [AI]

Reimplemented from MxPresenter.

Definition at line 53 of file legoanimmmpresenter.cpp.

◆ StartingTickle()

void LegoAnimMMPresenter::StartingTickle ( )
overridevirtual

[AI] Tickle callback for the starting state.

Prepares action timing and advances to the streaming state.

Reimplemented from MxPresenter.

Definition at line 167 of file legoanimmmpresenter.cpp.

◆ StreamingTickle()

void LegoAnimMMPresenter::StreamingTickle ( )
overridevirtual

[AI] Tickle callback for the streaming state.

Drives the staged tickle progression and manages transition logic.

Reimplemented from MxPresenter.

Definition at line 181 of file legoanimmmpresenter.cpp.

◆ VTable0x60()

void LegoAnimMMPresenter::VTable0x60 ( MxPresenter p_presenter)
overridevirtual

[AI] (Internal use) Handles a state transfer/notification from a child presenter to this composite presenter.

Parameters
p_presenterChild presenter invoking this handler. [AI]

Reimplemented from MxCompositePresenter.

Definition at line 228 of file legoanimmmpresenter.cpp.


The documentation for this class was generated from the following files: