42 while (cursor.
Current(action)) {
44 const char* presenterName;
64 if (presenter->
IsA(
"MxVideoPresenter")) {
67 else if (presenter->
IsA(
"MxAudioPresenter")) {
77 m_list.push_back(presenter);
102 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
103 if ((*it)->GetCurrentTickleState() <
e_streaming) {
106 if ((*it)->GetCurrentTickleState() ==
e_streaming ||
107 ((*it)->GetAction() && (*it)->GetAction()->GetStartTime())) {
113 if (
m_list.size() == m_unk0x4c) {
117 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
118 if (!(*it)->GetAction()->GetStartTime()) {
125 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
126 if (!(*it)->GetAction()->GetStartTime() && ((
MxMediaPresenter*) *it)->CurrentChunk() &&
157 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
175 for (MxCompositePresenterList::iterator it =
m_list.begin(); it !=
m_list.end(); it++) {
MxCompositePresenterList m_list
[AI] List of owned child presenters that are managed by this MxCompositePresenter....
void SetTickleState(TickleState p_tickleState) override
[AI] Change the tickle state of this composite presenter and propagate to each child.
[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).
virtual void SetUnknown90(MxLong p_unk0x90)
[AI] Set unknown value at offset 0x90, used as baseline in GetElapsedTime.
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).
@ c_looping
[AI] Action or media should repeat in a loop [AI]
@ c_bit3
[AI] Unknown - possibly reserved [AI]
@ c_bit9
[AI] Unknown - possibly reserved [AI]
[AI] Represents a container for multiple MxDSAction objects, facilitating the grouping and management...
MxBool Current(T &p_obj)
[AI]
virtual MxCore * Create(const char *p_name)
[AI] Creates a new instance of the class matching the provided string name.
[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.
void ProgressTickleState(TickleState p_tickleState)
[AI] Helper for advancing the presenter's tickle state and updating transition history.
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.
TickleState m_currentTickleState
[AI] Current state in the tickle lifecycle.
@ e_repeating
[AI] Presentation is repeating (e.g., looping media).
@ e_done
[AI] Completed processing the current action.
@ e_idle
[AI] Not processing an action.
@ e_ready
[AI] Prepared to start processing an action.
@ e_freezing
[AI] Temporarily suspending updates or playback.
@ e_starting
[AI] In the process of starting playback/presentation.
@ e_streaming
[AI] Streaming or rendering actively.
MxCriticalSection m_criticalSection
[AI] Thread synchronization for presenter state and data.
MxCompositePresenter * m_compositePresenter
[AI] Owner composite presenter, if any.
MxBool IsA(const char *p_name) const override
[AI] Determines if this object is of (or inherits) the specified named class.
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.
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
MxLong GetTime()
Returns the current timer value in ms, depending on running state.
#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.
LegoVideoManager * VideoManager()
[AI] Accessor for the game's LegoVideoManager subsystem. Used for managing 3D/video hardware....
LegoSoundManager * SoundManager()
[AI] Accessor for the game's LegoSoundManager subsystem from the global LegoOmni instance....
#define AUTOLOCK(CS)
[AI] Macro for automatic locking using the MxAutoLock class. This macro instantiates an MxAutoLock ob...
MxTimer * Timer()
[AI] Returns the global simulation timer.
MxObjectFactory * ObjectFactory()
[AI] Returns the factory for creating core engine objects from atom/type ids.
const char * PresenterNameDispatch(const MxDSAction &)
[AI] Provides a mapping from action object/type to the correct presenter handler class name based on ...