Isle
Loading...
Searching...
No Matches
helicopter.h
Go to the documentation of this file.
1#ifndef HELICOPTER_H
2#define HELICOPTER_H
3
4#include "islepathactor.h"
5#include "legostate.h"
7
8class Act3;
9
14class HelicopterState : public LegoState {
15public:
18
21 MxBool IsSerializable() override { return FALSE; } // vtable+0x14
22
26 MxBool Reset() override
27 {
28 m_unk0x08 = 0;
29 return TRUE;
30 } // vtable+0x18
31
34 const char* ClassName() const override // vtable+0x0c
35 {
36 // STRING: LEGO1 0x100f0144
37 return "HelicopterState";
38 }
39
43 MxBool IsA(const char* p_name) const override // vtable+0x10
44 {
45 return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
46 }
47
48 // SYNTHETIC: LEGO1 0x1000e190
49 // HelicopterState::`scalar deleting destructor'
50
52};
53
57class Helicopter : public IslePathActor {
58public:
60 Helicopter();
61
63 ~Helicopter() override; // vtable+0x00
64
67 const char* ClassName() const override // vtable+0x0c
68 {
69 // STRING: LEGO1 0x100f0130
70 return "Helicopter";
71 }
72
76 MxBool IsA(const char* p_name) const override // vtable+0x10
77 {
78 return !strcmp(p_name, Helicopter::ClassName()) || IslePathActor::IsA(p_name);
79 }
80
84 MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
85
88 void Animate(float p_time) override; // vtable+0x70
89
92 void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
93
96 MxLong HandleClick() override; // vtable+0xcc
97
101 MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4
102
106 MxLong HandleEndAnim(LegoEndAnimNotificationParam& p_param) override; // vtable+0xd8
107
109 void Exit() override; // vtable+0xe4
110
112 void CreateState();
113
117 void FUN_10004640(const Matrix4& p_matrix);
118
122 void FUN_10004670(const Matrix4& p_matrix);
123
124 // SYNTHETIC: LEGO1 0x10003210
125 // Helicopter::`scalar deleting destructor'
126
128 friend class Act3;
129
130protected:
133 void FUN_100042a0(const Matrix4& p_matrix);
134
141};
142
143#endif // HELICOPTER_H
[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects,...
Definition: act3.h:182
[AI] Game state entity specialized for tracking Helicopter-related state during gameplay.
Definition: helicopter.h:14
MxBool Reset() override
[AI] Resets helicopter-specific state/progress tracking variable.
Definition: helicopter.h:26
MxU32 m_unk0x08
[AI] State/progress value for the helicopter, used for tracking animation or progress in gameplay....
Definition: helicopter.h:51
const char * ClassName() const override
[AI] Returns the runtime class name string of this object.
Definition: helicopter.h:34
HelicopterState()
[AI] Default constructor initializes unmapped state property to zero. [AI]
Definition: helicopter.h:17
MxBool IsSerializable() override
[AI] Indicates if this state can be serialized (always false for HelicopterState).
Definition: helicopter.h:21
MxBool IsA(const char *p_name) const override
[AI] Checks if this object is of the requested class or a parent class.
Definition: helicopter.h:43
[AI] Represents the flyable helicopter vehicle/path actor in the game, handling all in-game behaviors...
Definition: helicopter.h:57
Helicopter()
[AI] Constructs and initializes helicopter-specific settings. [AI]
Definition: helicopter.cpp:34
~Helicopter() override
[AI] Destructor, handles cleanup/unregistration. [AI]
Definition: helicopter.cpp:40
MxMatrix m_unk0x1a8
[AI] Stores end matrix (camera/actor) for camera transitions/interpolation. [AI]
Definition: helicopter.h:136
void FUN_10004640(const Matrix4 &p_matrix)
[AI] Initiates camera transition for takeoff (Act3 minigame).
Definition: helicopter.cpp:490
MxResult Create(MxDSAction &p_dsAction) override
[AI] Creates (initializes) the helicopter entity from an action script.
Definition: helicopter.cpp:48
void VTable0x74(Matrix4 &p_transform) override
[AI] Applies world transformations relevant to helicopter motion/position.
Definition: helicopter.cpp:387
void FUN_100042a0(const Matrix4 &p_matrix)
[AI] Internal: Sets up smooth camera path and stores transform endpoints used for takeoff/landing tra...
Definition: helicopter.cpp:448
float m_unk0x1f0
[AI] Timestamp for beginning of camera/copter transition—used for timing interpolation....
Definition: helicopter.h:137
void Animate(float p_time) override
[AI] Handles animation logic for the helicopter.
Definition: helicopter.cpp:403
MxMatrix m_unk0x160
[AI] Stores start matrix (camera/actor) for camera transitions/interpolation. [AI]
Definition: helicopter.h:135
MxLong HandleControl(LegoControlManagerNotificationParam &p_param) override
[AI] Processes input/control events specific to helicopter (dashboard/cockpit/archetype event handlin...
Definition: helicopter.cpp:173
HelicopterState * m_state
[AI] Pointer to the associated HelicopterState tracking per-helicopter animation/state....
Definition: helicopter.h:139
void FUN_10004670(const Matrix4 &p_matrix)
[AI] Initiates camera transition for landing (Act3 minigame).
Definition: helicopter.cpp:499
void Exit() override
[AI] Handles the helicopter's exit/teardown. Resets state, unregisters, updates game state and cleans...
Definition: helicopter.cpp:79
MxLong HandleClick() override
[AI] Processes click interactions with the helicopter UI/actor.
Definition: helicopter.cpp:122
void CreateState()
[AI] Creates or retrieves the associated HelicopterState instance for this actor. [AI]
Definition: helicopter.cpp:69
MxBool IsA(const char *p_name) const override
[AI] Checks if this object is of the requested class or a superclass.
Definition: helicopter.h:76
MxQuaternionTransformer m_unk0x1f4
[AI] Interpolator for quaternion/matrix transforms (camera movement for animation)....
Definition: helicopter.h:138
MxLong HandleEndAnim(LegoEndAnimNotificationParam &p_param) override
[AI] Handles end-of-animation events for the helicopter (e.g., animation state transitions).
Definition: helicopter.cpp:312
const char * ClassName() const override
[AI] Returns the runtime class name string for this object instance.
Definition: helicopter.h:67
MxAtomId m_script
[AI] Current script-atom identifier for action callbacks and in-game object referencing....
Definition: helicopter.h:140
Derived path actor type for handling player transitions and activities on LEGO Island.
Definition: islepathactor.h:23
MxBool IsA(const char *p_name) const override
[AI] Checks if class or any superclass matches the given type string.
[AI] Notification parameter for the LegoControlManager, used to propagate information about control e...
Notification parameter for signaling the end of an animation in the LEGO Island engine.
[AI] Base class for game state blocks which encapsulate serializable and/or resettable aspects of the...
Definition: legostate.h:17
MxBool IsA(const char *p_name) const override
[AI] Tests if this object is of a given class name, directly or through inheritance.
Definition: legostate.h:169
4x4 Matrix class with virtual interface for manipulation and transformation.
Definition: matrix.h:24
[AI] Atomized (unique) string identifier, managed by reference counting.
Definition: mxatom.h:124
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
Definition: mxmatrix.h:16
Quaternion interpolation utility for 4D transformations, supporting quaternion start/end points and s...
Definition: mxquaternion.h:14
#define override
Definition: compat.h:21
#define TRUE
Definition: d3drmdef.h:28
#define FALSE
Definition: d3drmdef.h:27
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
int MxLong
[AI]
Definition: mxtypes.h:83
unsigned int MxU32
[AI]
Definition: mxtypes.h:32