16 if (m_subscriber->PeekData()) {
18 m_subscriber->FreeDataChunk(chunk);
22 ProgressTickleState(e_done);
23 if (m_compositePresenter) {
24 if (m_compositePresenter->IsA(
"LegoAnimMMPresenter")) {
25 m_compositePresenter->VTable0x60(
this);
30 if (m_action->GetDuration() != -1) {
31 if (m_action->GetElapsedTime() > m_action->GetDuration() + m_action->GetStartTime()) {
LegoROI ** m_unk0x8c
[AI] Lookup array for secondary ROI objects (used for e.g.
LegoAnim * m_anim
[AI] Animation resource currently being played back.
MxU8 m_unk0x94
[AI] Count of valid camera attached ROI names in m_unk0x90 / m_unk0x8c.
void FUN_1006b9a0(LegoAnim *p_anim, MxLong p_time, Matrix4 *p_matrix)
[AI] Like FUN_1006b900, but also processes associated camera animation if present.
Matrix4 * m_unk0x78
[AI] Pointer to root/offset MxMatrix used for transform computations.
LegoWorld * m_currentWorld
[AI] Reference to the world in which this presenter is currently placed/active.
LegoTime GetDuration()
[AI] Duration (in time units) of the animation.
Mx3DPointFloat GetWorldLocation()
Gets the camera's current world-space location.
[AI] Presenter for looping animated sequences in the LEGO Island engine.
void PutFrame() override
[AI] Advances animation to the correct frame, applying looping time logic.
LegoCameraController * GetCameraController()
Returns the current camera controller for the world.
MxLong GetStartTime() const
[AI] Gets the nominal start time for the action, as loaded or scheduled.
virtual MxLong GetElapsedTime()
[AI] Gets elapsed time for this action since the last time field 0x90 was set.
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
MxDSAction * m_action
[AI] The associated action currently being presented by this presenter.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
virtual void VTable0x14()
[AI] Calls VTable0x1c().
void FUN_100a58f0(const Matrix4 &p_transform)
Assigns the given matrix as the local-to-world transformation and enables some internal flags.
virtual int Unitize()
[AI] Scales the vector so its norm is 1 (unit vector).
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
float LenSquared() const override
[AI] Computes the squared magnitude (x^2 + y^2 + z^2) of this vector.
virtual void EqualsCross(const Vector3 &p_a, const Vector3 &p_b)
[AI] Sets this vector to be the cross product of p_a and p_b.
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).