Isle
Loading...
Searching...
No Matches
towtrack.h
Go to the documentation of this file.
1#ifndef TOWTRACK_H
2#define TOWTRACK_H
3
4#include "decomp.h"
5#include "islepathactor.h"
6#include "legostate.h"
7
9
10// VTABLE: LEGO1 0x100d7fd8
11// VTABLE: BETA10 0x101bfee0
12// SIZE 0x28
18public:
23
29 MxResult Serialize(LegoStorage* p_storage) override; // vtable+0x1c
30
35 const char* ClassName() const override; // vtable+0x0c
36
42 MxBool IsA(const char* p_name) const override; // vtable+0x10
43
50
56 void UpdateScore(ScoreColor p_score, MxS16 p_actorId);
57
58 // SYNTHETIC: LEGO1 0x1004e060
59 // TowTrackMissionState::`scalar deleting destructor'
60
74};
75
76// VTABLE: LEGO1 0x100d7ee0
77// VTABLE: BETA10 0x101bfdc0
78// SIZE 0x180
83class TowTrack : public IslePathActor {
84public:
88 TowTrack();
92 ~TowTrack() override;
93
98 const char* ClassName() const override; // vtable+0x0c
99
105 MxBool IsA(const char* p_name) const override; // vtable+0x10
106
112 MxLong Notify(MxParam& p_param) override;
113
119 MxResult Create(MxDSAction& p_dsAction) override;
120
125 void Animate(float p_time) override;
126
131 MxLong HandleClick() override;
132
139
146
153
157 void Exit() override;
158
165
170 void CreateState();
171
175 void FUN_1004dab0();
176
181
185 void StopActions();
186
190 void FUN_1004dbe0();
191
192 // SYNTHETIC: LEGO1 0x1004c950
193 // TowTrack::`scalar deleting destructor'
194
195private:
199 void Leave();
200
205 void PlayFinalAnimation(IsleScript::Script p_objectId);
206
211 void FUN_1004dcb0(IsleScript::Script p_objectId);
212
217 void PlayAction(IsleScript::Script p_objectId);
218
219 undefined4 m_unk0x160;
220 TowTrackMissionState* m_state;
221 MxS16 m_unk0x168;
222 MxS16 m_actorId;
223 MxS16 m_unk0x16c;
224 MxS16 m_unk0x16e;
225 IsleScript::Script m_lastAction;
226 IsleScript::Script m_lastAnimation;
227 MxFloat m_fuel;
228 MxFloat m_time;
229};
230
231#endif // TOWTRACK_H
Derived path actor type for handling player transitions and activities on LEGO Island.
Definition: islepathactor.h:23
[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] Specialized notification parameter used for path structure related events in LEGO Island.
[AI] Base class for game state blocks which encapsulate serializable and/or resettable aspects of the...
Definition: legostate.h:17
ScoreColor
[AI] Score coloring values for in-game display feedback or logic.
Definition: legostate.h:22
Abstract base class providing an interface for file-like storage with binary and text read/write oper...
Definition: legostorage.h:16
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
Definition: mxparam.h:7
[AI] State class for the TowTrack mini-game, storing scores by character and handling their serializa...
Definition: towtrack.h:17
MxS16 GetHighScore(MxU8 p_actorId)
[AI] Retrieves the highscore for a given actor in the Tow Track mini-game.
MxBool IsA(const char *p_name) const override
[AI] Checks if this instance is of the provided name or derives from a parent with that name.
void UpdateScore(ScoreColor p_score, MxS16 p_actorId)
[AI] Updates the score for an actor and also updates the highscore if the new score exceeds the previ...
MxResult Serialize(LegoStorage *p_storage) override
[AI] Serializes or deserializes the mission state, including per-actor scores and highscores,...
MxS16 m_peScore
[AI] Current Pepper score in the mission.
Definition: towtrack.h:64
MxLong m_startTime
[AI] Start time of the mission attempt, used to track performance.
Definition: towtrack.h:62
MxS16 m_paScore
[AI] Current Papa score in the mission.
Definition: towtrack.h:66
MxS16 m_maHighScore
[AI] Highscore for Mama achieved so far in the mission.
Definition: towtrack.h:70
MxBool m_unk0x10
[AI] Flag for one-time event in end-sequence (prevents repeated trigger).
Definition: towtrack.h:63
MxS16 m_niHighScore
[AI] Highscore for Nick achieved so far in the mission.
Definition: towtrack.h:72
const char * ClassName() const override
[AI] Returns the class name for RTTI/dispatch.
MxS16 m_laScore
[AI] Current Laura score in the mission.
Definition: towtrack.h:68
MxS16 m_laHighScore
[AI] Highscore for Laura achieved so far in the mission.
Definition: towtrack.h:73
MxS16 m_niScore
[AI] Current Nick score in the mission.
Definition: towtrack.h:67
MxS16 m_paHighScore
[AI] Highscore for Papa achieved so far in the mission.
Definition: towtrack.h:71
MxS16 m_maScore
[AI] Current Mama score in the mission.
Definition: towtrack.h:65
TowTrackMissionState()
[AI] Constructs and initializes all score and state values for the Tow Track mini-game.
Definition: towtrack.cpp:594
undefined4 m_unk0x08
[AI] Mission substage/step flag for Tow Track, typically takes 0,1,2,3 (purpose per stage flow).
Definition: towtrack.h:61
MxS16 m_peHighScore
[AI] Highscore for Pepper achieved so far in the mission.
Definition: towtrack.h:69
[AI] 3D world actor for the Tow Track mini-game; manages Tow Track mission logic, scene activation an...
Definition: towtrack.h:83
void Animate(float p_time) override
[AI] Main per-frame update.
Definition: towtrack.cpp:77
TowTrack()
[AI] Constructs the TowTrack actor and initializes runtime state.
Definition: towtrack.cpp:30
~TowTrack() override
[AI] Destructor unregisters this TowTrack from control handlers and performs cleanup.
Definition: towtrack.cpp:44
MxLong HandlePathStruct(LegoPathStructNotificationParam &p_param) override
[AI] Handles path-structure trigger events (e.g., player crossing locations on path networks).
Definition: towtrack.cpp:287
void StopActions()
[AI] Halts all ongoing Tow Track mini-game actions.
Definition: towtrack.cpp:532
MxLong HandleControl(LegoControlManagerNotificationParam &p_param) override
[AI] Handles user input or control notifications (such as UI widget actions) directed at TowTrack.
Definition: towtrack.cpp:481
void FUN_1004dbe0()
[AI] Handles cleanup tasks upon mini-game exit, including resetting state variables and unregistering...
Definition: towtrack.cpp:546
virtual MxLong HandleEndAction(MxEndActionNotificationParam &p_param)
[AI] Handles end of scripted in-game action (or cutscene) for the TowTrack.
Definition: towtrack.cpp:154
void Exit() override
[AI] Called when the TowTrack mini-game is exited (by player or action/trigger).
Definition: towtrack.cpp:456
void ActivateSceneActions()
[AI] Triggers scene-based scripted actions according to mission state.
Definition: towtrack.cpp:517
MxLong HandleEndAnim(LegoEndAnimNotificationParam &p_param) override
[AI] Called when an animation finishes; used for state progression in the mini-game.
Definition: towtrack.cpp:147
MxLong Notify(MxParam &p_param) override
[AI] Notifies the TowTrack actor of an event.
Definition: towtrack.cpp:117
void CreateState()
[AI] Ensures the TowTrackMissionState exists and is registered in the global state manager.
Definition: towtrack.cpp:107
MxBool IsA(const char *p_name) const override
[AI] Checks if this instance is of the provided name or derives from a parent with that name.
MxLong HandleClick() override
[AI] Handles user (mouse) click event on the TowTrack, including state setup and spawning side-effect...
Definition: towtrack.cpp:404
MxResult Create(MxDSAction &p_dsAction) override
[AI] Instantiates or restores this actor in the current world according to DSAction.
Definition: towtrack.cpp:51
const char * ClassName() const override
[AI] Returns the class name for RTTI/dispatch.
void FUN_1004dab0()
[AI] Begins the Tow Track mission, sets state variable, and triggers click-handling sequence.
Definition: towtrack.cpp:510
unsigned int undefined4
Definition: decomp.h:28
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
int MxLong
[AI]
Definition: mxtypes.h:83
signed short MxS16
[AI]
Definition: mxtypes.h:26
float MxFloat
[AI]
Definition: mxtypes.h:68
unsigned char MxU8
[AI]
Definition: mxtypes.h:8