Isle
Loading...
Searching...
No Matches
legoextraactor.h
Go to the documentation of this file.
1#ifndef LEGOEXTRAACTOR_H
2#define LEGOEXTRAACTOR_H
3
4#include "legoanimactor.h"
5
6// VTABLE: LEGO1 0x100d6c00 LegoAnimActor
7// VTABLE: LEGO1 0x100d6c10 LegoPathActor
8// VTABLE: LEGO1 0x100d6cdc LegoExtraActor
9// VTABLE: BETA10 0x101bc2a0 LegoAnimActor
10// VTABLE: BETA10 0x101bc2b8 LegoPathActor
11// VTABLE: BETA10 0x101bc3a8 LegoExtraActor
12// SIZE 0x1dc
13
23class LegoExtraActor : public virtual LegoAnimActor {
24public:
28 enum Axis {
32 e_negx
33 };
34
39
43 ~LegoExtraActor() override;
44
49 const char* ClassName() const override; // vtable+0x0c
50
55 MxBool IsA(const char* p_name) const override; // vtable+0x10
56
62 void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
63
71 MxS32 VTable0x68(Vector3& p_point1, Vector3& p_point2, Vector3& p_point3) override; // vtable+0x68
72
84 inline MxU32 VTable0x6c(
85 LegoPathBoundary* p_boundary,
86 Vector3& p_v1,
87 Vector3& p_v2,
88 float p_f1,
89 float p_f2,
90 Vector3& p_v3
91 ) override; // vtable+0x6c
92
97 void Animate(float p_time) override; // vtable+0x70
98
104 void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
105
113 MxU32 VTable0x90(float p_time, Matrix4& p_matrix) override; // vtable+0x90
114
122 MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
123
129 MxResult VTable0x9c() override; // vtable+0x9c
130
136 void VTable0xa4(MxBool& p_und1, MxS32& p_und2) override; // vtable+0xa4
137
141 void VTable0xc4() override; // vtable+0xc4
142
148 virtual MxResult FUN_1002aae0();
149
153 void Restart();
154
159 inline void FUN_1002ad8a();
160
165 void SetUnknown0x0c(undefined p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
166
167 // SYNTHETIC: LEGO1 0x1002b760
168 // LegoExtraActor::`scalar deleting destructor'
169
170private:
174 MxFloat m_scheduledTime; // 0x08 [AI]
175
179 undefined m_unk0x0c; // 0x0c [AI]
180
184 MxU8 m_axis; // 0x0d [AI]
185
189 undefined m_unk0x0e; // 0x0e [AI]
190
194 MxFloat m_prevWorldSpeed; // 0x10 [AI]
195
199 MxU8 m_whichAnim; // 0x14 [AI]
200
204 MxU8 m_unk0x15; // 0x15 [AI]
205
209 MxMatrix m_unk0x18; // 0x18 [AI]
210
214 LegoAnimActorStruct* m_assAnim; // 0x60 [AI]
215
219 LegoAnimActorStruct* m_disAnim; // 0x64 [AI]
220};
221
222// GLOBAL: LEGO1 0x100d6be8
223// LegoExtraActor::`vbtable'{for `LegoAnimActor'}
224
225// GLOBAL: LEGO1 0x100d6bf0
226// LegoExtraActor::`vbtable'{for `LegoExtraActor'}
227
228// TEMPLATE: LEGO1 0x1002b200
229// vector<unsigned char *,allocator<unsigned char *> >::vector<unsigned char *,allocator<unsigned char *> >
230
231// TEMPLATE: LEGO1 0x1002b270
232// vector<unsigned char *,allocator<unsigned char *> >::size
233
234// TEMPLATE: LEGO1 0x1002b720
235// ?uninitialized_copy@@YAPAPAEPAPAE00@Z
236
237#endif // LEGOEXTRAACTOR_H
[AI] Path-based actor which supports skeletal/mesh animation via an animation tree and multiple anima...
Definition: legoanimactor.h:49
Represents a special actor in the world with additional animation state machines and complex interact...
MxResult HitActor(LegoPathActor *p_actor, MxBool p_bool) override
Processes a collision ("hit") with another actor, updating internal animation state and triggering so...
void VTable0x74(Matrix4 &p_transform) override
Updates object transformation if special animation is not active, otherwise delegates to parent class...
MxS32 VTable0x68(Vector3 &p_point1, Vector3 &p_point2, Vector3 &p_point3) override
(Inherited implementation) Delegates edge update logic to LegoPathActor.
void Animate(float p_time) override
Performs animation updates for the actor, handling alternate animations and transitions after collisi...
void Restart()
Checks whether this actor's previous boundary was "blocked" and re-enables movement if allowed; calle...
void SetWorldSpeed(MxFloat p_worldSpeed) override
Sets the world speed for this actor, factoring in its current animation/interaction state.
MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3) override
Tests for and handles collision with other path actors during simulation.
void VTable0xc4() override
Handles special cleanup or reset behavior for extra actors, often related to secondary animation stat...
const char * ClassName() const override
Returns the class name as "LegoExtraActor".
LegoExtraActor()
Constructs a LegoExtraActor with default state and null animation references.
void VTable0xa4(MxBool &p_und1, MxS32 &p_und2) override
Determines secondary state outputs for randomization or specific internal state flags,...
~LegoExtraActor() override
Destructor, cleans up allocated animation structures.
void SetUnknown0x0c(undefined p_unk0x0c)
Sets the internal unknown flag (possible randomization/collision state controller).
MxBool IsA(const char *p_name) const override
Checks if the provided type name matches this class or any parent class.
MxResult VTable0x9c() override
Called when crossing path boundaries, manages transitions to special in-between animation states and ...
virtual MxResult FUN_1002aae0()
Handles boundary edge changes and swapping the actor's edge, updating direction and orientation accor...
void FUN_1002ad8a()
Loads or assigns the alternate ("assembly" and "disassembly") animations to this actor as needed.
MxU32 VTable0x90(float p_time, Matrix4 &p_matrix) override
Core animation & state tick: handles scheduled events (e.g., switching state after timed delay post-c...
Axis
Used to specify the axis for orientation or effect direction during animation or collision.
@ e_negz
-Z axis [AI]
@ e_posz
+Z axis [AI]
@ e_negx
-X axis [AI]
@ e_posx
+X axis [AI]
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
Definition: legopathactor.h:32
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
4x4 Matrix class with virtual interface for manipulation and transformation.
Definition: matrix.h:24
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
Definition: mxmatrix.h:16
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
Definition: vector.h:249
unsigned char undefined
Definition: decomp.h:26
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
float MxFloat
[AI]
Definition: mxtypes.h:68
unsigned char MxU8
[AI]
Definition: mxtypes.h:8
signed int MxS32
[AI]
Definition: mxtypes.h:38
unsigned int MxU32
[AI]
Definition: mxtypes.h:32
[AI] Holds per-animation instance data for a LegoAnimActor.
Definition: legoanimactor.h:13