Isle
|
[AI] Presenter class for loading and managing path data from scripts/actions, used for actor pathing in the LEGO Island engine. More...
#include <legopathpresenter.h>
Public Member Functions | |
LegoPathPresenter () | |
[AI] Constructs a LegoPathPresenter, initializing its members and state. More... | |
~LegoPathPresenter () override | |
[AI] Destroys this presenter, unregistering from the video manager, deleting resources, and restoring critical section safety. More... | |
const char * | ClassName () const override |
[AI] Returns the class name for this presenter instance, for dynamic type identification. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Checks if this instance matches a specified class name in the inheritance hierarchy. More... | |
void | ReadyTickle () override |
[AI] Handles the transition to the ready state ("ReadyTickle") by consuming streamed path data, creating a LegoPathController, and inserting it into the current world. More... | |
void | StreamingTickle () override |
[AI] Processes data stream chunks during the streaming tickle phase. More... | |
void | RepeatingTickle () override |
[AI] Handles the repeating tickle logic, ending the action if the associated duration is not indefinite. More... | |
void | ParseExtra () override |
[AI] Parses the extra (optional) field from the related media action, searching for a trigger string and assigning it to m_trigger. More... | |
MxResult | AddToManager () override |
[AI] Registers this presenter instance with the global or world's video manager (LegoVideoManager). More... | |
void | Destroy () override |
[AI] Unregisters the presenter from the video manager, deallocates managed resources, and resets internal state. More... | |
![]() | |
MxMediaPresenter () | |
[AI] Constructs the presenter, initializing all member variables. More... | |
~MxMediaPresenter () override | |
[AI] Destructor; cleans up and optionally destroys all internal resources as well as the MxDSSubscriber and chunk list/cursor. More... | |
void | Destroy () override |
[AI] Cleans up internal resources and resets the presenter to an uninitialized state. More... | |
MxResult | Tickle () override |
[AI] Advances the presenter's state and media stream, if any, by tickling (i.e., updating) components. More... | |
const char * | ClassName () const override |
[AI] Returns the class name for this presenter (see HandlerClassName()). More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Returns TRUE if the provided class name matches this class or any of its parents. More... | |
void | StreamingTickle () override |
[AI] Per-frame update when streaming the media stream. More... | |
void | RepeatingTickle () override |
[AI] Per-frame update while looping/repeating over known chunks. More... | |
void | DoneTickle () override |
[AI] Per-frame update for the "done" state; transitions this presenter to idle and ends the action. More... | |
MxResult | StartAction (MxStreamController *, MxDSAction *) override |
[AI] Begins a new media playback action, wiring up the stream and chunk lists as needed. More... | |
void | EndAction () override |
[AI] Ends the media playback action, releasing all resources, notifying listeners if necessary. More... | |
void | Enable (MxBool p_enable) override |
[AI] Enables or disables media stream playback and transitions state as needed. More... | |
virtual void | LoopChunk (MxStreamChunk *p_chunk) |
[AI] Adds a chunk to the looping chunk list, making it available for repeated playback. More... | |
MxStreamChunk * | CurrentChunk () |
[AI] Returns a pointer to the current data chunk at the head of the stream, without consuming it. More... | |
MxStreamChunk * | NextChunk () |
[AI] Returns the next data chunk in the stream, removing it from the stream queue. More... | |
![]() | |
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... | |
MxEntity * | CreateEntity (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... | |
MxDSAction * | GetAction () 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... | |
![]() | |
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] Returns the static handler class name for this presenter, used for identification and class dispatching. More... | |
![]() | |
static const char * | HandlerClassName () |
[AI] Gets the class name string for handler dispatch and RTTI emulation. More... | |
![]() | |
static const char * | HandlerClassName () |
[AI] Returns the handler class name for identification and reflection purposes. More... | |
Protected Member Functions | |
void | Destroy (MxBool p_fromDestructor) |
[AI] Internal destroy logic with destructor context flag. More... | |
![]() | |
void | Init () |
[AI] Initializes all member variables to a known default state (NULL pointers, etc). More... | |
void | Destroy (MxBool p_fromDestructor) |
[AI] Frees all managed resources, owned memory and pointers, optionally preventing destruction of the base class. More... | |
![]() | |
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 | |
MxAtomId | m_trigger |
[AI] Atom identifier representing a trigger parsed from the extra string in the associated media action. More... | |
![]() | |
MxDSSubscriber * | m_subscriber |
[AI] Subscriber that provides the stream data (e.g., audio/video chunks) for this presenter. More... | |
MxStreamChunkList * | m_loopingChunks |
[AI] Linked list of all chunks available for looping/repeating playback. More... | |
MxStreamChunkListCursor * | m_loopingChunkCursor |
[AI] Cursor used to iterate through the loopingChunk list during repeat mode. More... | |
MxStreamChunk * | m_currentChunk |
[AI] Currently active data chunk for playback or processing. More... | |
![]() | |
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... | |
MxDSAction * | m_action |
[AI] The associated action currently being presented by this presenter. More... | |
MxCriticalSection | m_criticalSection |
[AI] Thread synchronization for presenter state and data. More... | |
MxCompositePresenter * | m_compositePresenter |
[AI] Owner composite presenter, if any. More... | |
Additional Inherited Members | |
![]() | |
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... | |
[AI] Presenter class for loading and managing path data from scripts/actions, used for actor pathing in the LEGO Island engine.
Handles allocation, destruction, and registration of path controllers with the video (presentation) manager, as well as tickle logic for presenting and parsing associated trigger atom identifiers. [AI]
LegoPathPresenter sits atop MxMediaPresenter and is responsible for interpreting and instantiating path data used by entities/actors to follow world paths. On ReadyTickle, it creates LegoPathController objects based on streamed chunk data and registers these with the active world. [AI]
Definition at line 15 of file legopathpresenter.h.
LegoPathPresenter::LegoPathPresenter | ( | ) |
[AI] Constructs a LegoPathPresenter, initializing its members and state.
[AI]
Definition at line 15 of file legopathpresenter.cpp.
|
override |
[AI] Destroys this presenter, unregistering from the video manager, deleting resources, and restoring critical section safety.
[AI]
Definition at line 26 of file legopathpresenter.cpp.
|
overridevirtual |
[AI] Registers this presenter instance with the global or world's video manager (LegoVideoManager).
Used to ensure update/tickle callbacks are performed. [AI]
Reimplemented from MxPresenter.
Definition at line 32 of file legopathpresenter.cpp.
|
overridevirtual |
[AI] Returns the class name for this presenter instance, for dynamic type identification.
[AI]
Reimplemented from MxCore.
|
overridevirtual |
[AI] Unregisters the presenter from the video manager, deallocates managed resources, and resets internal state.
[AI]
Reimplemented from MxPresenter.
Definition at line 62 of file legopathpresenter.cpp.
|
protected |
[AI] Internal destroy logic with destructor context flag.
Handles resource deallocation, unregisters from video manager, resets state, and calls parent destroy if needed. [AI]
p_fromDestructor | True if called from destructor context; false otherwise. Prevents redundant deletion. [AI] |
Definition at line 45 of file legopathpresenter.cpp.
|
static |
[AI] Returns the static handler class name for this presenter, used for identification and class dispatching.
[AI]
|
overridevirtual |
[AI] Checks if this instance matches a specified class name in the inheritance hierarchy.
[AI]
p_name | The class name to check against. [AI] |
Reimplemented from MxCore.
|
overridevirtual |
[AI] Parses the extra (optional) field from the related media action, searching for a trigger string and assigning it to m_trigger.
[AI]
Reimplemented from MxPresenter.
Definition at line 119 of file legopathpresenter.cpp.
|
overridevirtual |
[AI] Handles the transition to the ready state ("ReadyTickle") by consuming streamed path data, creating a LegoPathController, and inserting it into the current world.
If data is not yet available, operation is deferred. [AI]
Reimplemented from MxPresenter.
Definition at line 68 of file legopathpresenter.cpp.
|
overridevirtual |
[AI] Handles the repeating tickle logic, ending the action if the associated duration is not indefinite.
[AI]
Reimplemented from MxPresenter.
Definition at line 109 of file legopathpresenter.cpp.
|
overridevirtual |
[AI] Processes data stream chunks during the streaming tickle phase.
Consumes and frees chunks, and triggers repetition state if end-of-stream is reached. [AI]
Reimplemented from MxPresenter.
Definition at line 95 of file legopathpresenter.cpp.
|
protected |
[AI] Atom identifier representing a trigger parsed from the extra string in the associated media action.
This may be matched to in-world triggers or events by controllers, and is assigned during ParseExtra(). [AI]
Definition at line 96 of file legopathpresenter.h.