Isle
Loading...
Searching...
No Matches
legoracespecial.h
Go to the documentation of this file.
1#ifndef LEGOCARRACEACTOR_H
2#define LEGOCARRACEACTOR_H
3
4#include "legoraceactor.h"
5
7extern const char* g_raceState;
8
10extern const char* g_fuel;
11
13extern const char* g_racing;
14
15// VTABLE: LEGO1 0x100da0c0 LegoRaceActor
16// VTABLE: LEGO1 0x100da0c8 LegoAnimActor
17// VTABLE: LEGO1 0x100da0d8 LegoPathActor
18// VTABLE: LEGO1 0x100da1a8 LegoCarRaceActor
19// VTABLE: BETA10 0x101bea74 LegoRaceActor
20// VTABLE: BETA10 0x101bea78 LegoAnimActor
21// VTABLE: BETA10 0x101bea90 LegoPathActor
22// VTABLE: BETA10 0x101beb80 LegoCarRaceActor
23// SIZE 0x1a0
24
26class LegoCarRaceActor : public virtual LegoRaceActor {
27public:
30
33 const char* ClassName() const override // vtable+0x0c
34 {
35 // STRING: LEGO1 0x100f0568
36 return "LegoCarRaceActor";
37 }
38
42 MxBool IsA(const char* p_name) const override // vtable+0x10
43 {
44 return !strcmp(p_name, LegoCarRaceActor::ClassName()) || LegoRaceActor::IsA(p_name);
45 }
46
55 inline MxU32 VTable0x6c(
56 LegoPathBoundary* p_boundary,
57 Vector3& p_v1,
58 Vector3& p_v2,
59 float p_f1,
60 float p_f2,
61 Vector3& p_v3
62 ) override;
63
66 void Animate(float p_time) override;
67
72 void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
73 override;
74
77 MxResult VTable0x9c() override;
78
79 // LegoCarRaceActor vtable
80
83 virtual void FUN_10080590(float p_time); // vtable+0x00
84
87 virtual void FUN_10012bb0(float p_unk0x14) { m_unk0x14 = p_unk0x14; } // vtable+0x04
88
90 virtual float FUN_10012bc0() { return m_unk0x14; } // vtable+0x08
91
94 virtual void FUN_10012bd0(float p_unk0x10) { m_unk0x10 = p_unk0x10; } // vtable+0x0c
95
97 virtual float FUN_10012be0() { return m_unk0x10; } // vtable+0x10
98
101 virtual void FUN_10012bf0(float p_unk0x18) { m_unk0x18 = p_unk0x18; } // vtable+0x14
102
104 virtual float FUN_10012c00() { return m_unk0x18; } // vtable+0x18
105
110 virtual MxS32 VTable0x1c(LegoPathBoundary* p_boundary, LegoEdge* p_edge);
111
112 // SYNTHETIC: LEGO1 0x10012c30
113 // LegoCarRaceActor::`vbase destructor'
114
115 // SYNTHETIC: LEGO1 0x10081620
116 // LegoCarRaceActor::`scalar deleting destructor'
117
118 // SYNTHETIC: LEGO1 0x10012d80
119 // LegoCarRaceActor::~LegoCarRaceActor
120
121protected:
124
127
130
132
135
138};
139
140// VTABLE: LEGO1 0x100da208 LegoCarRaceActor
141// VTABLE: LEGO1 0x100da228 LegoRaceActor
142// VTABLE: LEGO1 0x100da230 LegoAnimActor
143// VTABLE: LEGO1 0x100da240 LegoPathActor
144// VTABLE: BETA10 0x101bd348 LegoCarRaceActor
145// VTABLE: BETA10 0x101bd370 LegoRaceActor
146// VTABLE: BETA10 0x101bd378 LegoAnimActor
147// VTABLE: BETA10 0x101bd390 LegoPathActor
148// SIZE 0x1a8
149
151class LegoJetskiRaceActor : public virtual LegoCarRaceActor {
152public:
155
158 const char* ClassName() const override // vtable+0x0c
159 {
160 // STRING: LEGO1 0x100f0554
161 return "LegoJetskiRaceActor";
162 }
163
167 MxBool IsA(const char* p_name) const override // vtable+0x10
168 {
169 return !strcmp(p_name, LegoJetskiRaceActor::ClassName()) || LegoCarRaceActor::IsA(p_name);
170 }
171
180 inline MxU32 VTable0x6c(
181 LegoPathBoundary* p_boundary,
182 Vector3& p_v1,
183 Vector3& p_v2,
184 float p_f1,
185 float p_f2,
186 Vector3& p_v3
187 ) override;
188
190 void Animate(float p_time) override;
191
196 MxS32 VTable0x1c(LegoPathBoundary* p_boundary, LegoEdge* p_edge) override;
197
198 // SYNTHETIC: LEGO1 0x10013a80
199 // LegoJetskiRaceActor::`vbase destructor'
200
201 // SYNTHETIC: LEGO1 0x10081d50
202 // LegoJetskiRaceActor::`scalar deleting destructor'
203
204 // SYNTHETIC: LEGO1 0x10013ba0
205 // LegoJetskiRaceActor::~LegoJetskiRaceActor
206};
207
208// GLOBAL: LEGO1 0x100da0b0
209// LegoCarRaceActor::`vbtable'
210
211// GLOBAL: LEGO1 0x100da0a8
212// LegoCarRaceActor::`vbtable'{for `LegoAnimActor'}
213
214// GLOBAL: LEGO1 0x100da098
215// LegoCarRaceActor::`vbtable'{for `LegoRaceActor'}
216
217// GLOBAL: LEGO1 0x100da1f0
218// LegoJetskiRaceActor::`vbtable'{for `LegoJetskiRaceActor'}
219
220// GLOBAL: LEGO1 0x100da1e8
221// LegoJetskiRaceActor::`vbtable'{for `LegoAnimActor'}
222
223// GLOBAL: LEGO1 0x100da1d8
224// LegoJetskiRaceActor::`vbtable'{for `LegoRaceActor'}
225
226// GLOBAL: LEGO1 0x100da1c8
227// LegoJetskiRaceActor::`vbtable'{for `LegoCarRaceActor'}
228
229#endif // LEGOCARRACEACTOR_H
[AI] Specialized actor class for car-based racing in LEGO Island racing sequences....
virtual void FUN_10012bf0(float p_unk0x18)
[AI] Sets a parameter likely affecting dynamic velocity or similar adjustment factor.
MxResult VTable0x9c() override
[AI] Handles the transition at key animation logic points, such as the end/start of edges and boundar...
MxFloat m_unk0x14
[AI] Could represent car acceleration or change-in-speed envelope. [AI_SUGGESTED_NAME: m_acceleration...
MxFloat m_unk0x08
[AI] Used for initial movement adjustment or normalization; always set to 1.0f in constructor....
virtual void FUN_10080590(float p_time)
[AI] Adjusts the target and acceleration for the car based on path, player position,...
virtual MxS32 VTable0x1c(LegoPathBoundary *p_boundary, LegoEdge *p_edge)
[AI] Handles logic for state transitions at control edges, updating actor state if needed based on pa...
MxU8 m_unk0x0c
[AI] State variable/fsm controlling the actor's current animation/logic state. [AI]
LegoCarRaceActor()
[AI] Constructor, sets up initial movement parameters and starting variable values....
virtual float FUN_10012be0()
[AI] Returns the current value of the straight path speed multiplier parameter. [AI]
MxFloat m_unk0x1c
[AI] Used for storing timestamps for time-based actor movement updates. [AI_SUGGESTED_NAME: m_lastUpd...
virtual float FUN_10012bc0()
[AI] Returns the current value of the acceleration or acceleration-related parameter....
MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3) override
[AI] Performs collision detection and/or special logic while moving the car actor along a boundary.
void SwitchBoundary(LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4) override
[AI] Handles switching from one path boundary to another, updating relevant edge and position paramet...
MxBool IsA(const char *p_name) const override
[AI] Checks if the object is a given class name (used for runtime type identification).
MxFloat m_unk0x18
[AI] General movement/velocity adjustment parameter, possibly for handling or group speed adjustment....
virtual void FUN_10012bb0(float p_unk0x14)
[AI] Sets the car acceleration or acceleration-related value.
virtual float FUN_10012c00()
[AI] Retrieves the current value of the velocity-related/dynamic adjustment parameter....
void Animate(float p_time) override
[AI] Main per-frame update for the car racer, controls activation of animation and state switching ba...
virtual void FUN_10012bd0(float p_unk0x10)
[AI] Sets a parameter likely related to speed multipliers when going straight.
static MxFloat g_unk0x100f7aec
[AI] Static value used as a global reference for minimum or target speed under specific circumstances...
const char * ClassName() const override
[AI] Returns the class name for this actor type.
MxFloat m_unk0x10
[AI] Likely a multiplier for maximum speed when on a straight portion of the track....
[AI] A racing actor subclass representing jetski (water-based) vehicles. Modifies car parameters and ...
LegoJetskiRaceActor()
[AI] Constructor initializing jetski movement and acceleration parameters. [AI]
MxS32 VTable0x1c(LegoPathBoundary *p_boundary, LegoEdge *p_edge) override
[AI] Handles state transitions for jetski racing at control edges or waterway turns.
MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3) override
[AI] Collision and path interaction routine specialized for jetski actors.
void Animate(float p_time) override
[AI] Per-frame logic and animation for jetski racing - enables racing state and syncs with variables....
MxBool IsA(const char *p_name) const override
[AI] Checks if the object is a given class name (used for runtime type identification).
const char * ClassName() const override
[AI] Returns the class name for this actor type.
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
[AI] Represents an actor that participates in races (usually vehicles or racers) on LEGO Island.
Definition: legoraceactor.h:22
MxBool IsA(const char *p_name) const override
[AI] Determines whether this object is of a class with a given name.
Definition: legoraceactor.h:46
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
Definition: vector.h:249
#define override
Definition: compat.h:21
const char * g_raceState
[AI] Global variable storing the name of the race state variable (used for checking or setting state ...
const char * g_fuel
[AI] Global variable storing the name of the fuel variable (used for managing the actor's fuel in gam...
const char * g_racing
[AI] Global variable storing the name of the racing state (used to check if the race is currently ong...
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] Represents an edge in the LEGO world geometry graph.
Definition: legoedge.h:16
[AI] Represents an advanced edge in the LEGO Island geometry system, with direction,...