Isle
Loading...
Searching...
No Matches
isle.h
Go to the documentation of this file.
1#ifndef ISLE_H
2#define ISLE_H
3
4#include "actionsfwd.h"
5#include "legogamestate.h"
6#include "legonamedplane.h"
7#include "legostate.h"
8#include "legoworld.h"
9#include "radio.h"
10
11class Ambulance;
12class Bike;
13class DuneBuggy;
14class Helicopter;
15class Jetski;
16class JukeBoxEntity;
18class Motocycle;
20class Pizza;
21class Pizzeria;
22class RaceCar;
23class SkateBoard;
24class TowTrack;
25
29class Act1State : public LegoState {
30public:
36 };
37
39 Act1State();
40
42 const char* ClassName() const override; // vtable+0x0c
43
46 MxBool IsA(const char* p_name) const override; // vtable+0x10
47
49 MxBool Reset() override;
50
53 MxResult Serialize(LegoStorage* p_storage) override;
54
57
60
62 void RemoveActors();
63
65 void PlaceActors();
66
69
72
75
77 void SetUnknown18(MxU32 p_unk0x18) { m_unk0x018 = p_unk0x18; }
78
80 void SetElevatorFloor(ElevatorFloor p_elevFloor) { m_elevFloor = p_elevFloor; }
81
83 void SetUnknown21(MxU8 p_unk0x21) { m_unk0x021 = p_unk0x21; }
84
87
90
92 MxU32 m_unk0x018; // 0x018
93
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
149 Jetski* m_jetski; // 0x1b8
150
153
156
159
162
165
168
171
174};
175
179class Isle : public LegoWorld {
180public:
182 enum {
184 c_playMusic = 0x40
185 };
186
188 Isle();
189
191 ~Isle() override;
192
195 MxLong Notify(MxParam& p_param) override;
196
198 MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
199
201 const char* ClassName() const override;
202
205 MxBool IsA(const char* p_name) const override;
206
209 MxResult Create(MxDSAction& p_dsAction) override;
210
212 void ReadyWorld() override;
213
216 void Add(MxCore* p_object) override;
217
219 void VTable0x60() override;
220
222 MxBool Escape() override;
223
226 void Enable(MxBool p_enable) override;
227
230 virtual void VTable0x6c(LegoPathActor* p_actor);
231
234 void SetDestLocation(LegoGameState::Area p_destLocation) { m_destLocation = p_destLocation; }
235
238
240 void FUN_10033350();
241
242 friend class Act1State;
243
244protected:
248
252
256
259
262
264 void UpdateGlobe();
265
267 void FUN_10032620();
268
270 void CreateState();
271
277 void FUN_10032d30(
278 IsleScript::Script p_script,
279 JukeboxScript::Script p_music,
280 const char* p_cameraLocation,
281 MxBool p_und
282 );
283
286
288 Pizza* m_pizza; // 0xfc
289
292
295
298
301
304
306 Bike* m_bike; // 0x114
307
310
313
316
319
321 Jetski* m_jetski; // 0x128
322
324 Radio m_radio; // 0x12c
325
328};
329
330#endif // ISLE_H
[AI] Holds state and transient gameplay data for the first act on Lego Island.
Definition: isle.h:29
MxBool Reset() override
[AI] Resets all internal state, including planes, pointers, vehicle flags, and clears dynamic memory ...
Definition: isle.cpp:1483
LegoNamedTexture * m_jetskiWindshield
[AI] Named texture for jetski windshield (state restoration, streaming). [AI]
Definition: isle.h:146
LegoNamedTexture * m_racecarFront
[AI] Named texture for racecar front (state restoration, streaming). [AI]
Definition: isle.h:164
MxBool IsA(const char *p_name) const override
[AI] Returns whether the provided name matches this class or a parent class.
void RemoveActors()
[AI] Serializes all current actor locations and status, disassociating them from the world for later ...
Definition: isle.cpp:1563
undefined m_unk0x021
[AI] Internal state/transition flag, possibly for initializing/handling world entry....
Definition: isle.h:107
DuneBuggy * m_dunebuggy
[AI] Serializable pointer to current dune buggy object (NULL when not held in state)....
Definition: isle.h:158
LegoNamedTexture * m_jetskiFront
[AI] Named texture for jetski front (state restoration, streaming). [AI]
Definition: isle.h:143
Playlist m_cptClickDialogue
[AI] Playlist object which cycles and holds available "Captain Click" audio scripts for the info cent...
Definition: isle.h:86
LegoNamedPlane m_bikePlane
[AI] Serialized/deserialized world placement state for bike.
Definition: isle.h:119
MxU8 GetUnknown21()
[AI] Returns the internal state variable at 0x021 (unknown, seems to control transitions).
Definition: isle.h:74
void SetUnknown18(MxU32 p_unk0x18)
[AI] Sets the gameplay progress variable at 0x018 (controls state transitions, gameplay mode changes,...
Definition: isle.h:77
Helicopter * m_helicopter
[AI] Serializable pointer to current helicopter object (NULL when not held in state)....
Definition: isle.h:137
RaceCar * m_racecar
[AI] Serializable pointer to current racecar object (NULL when not held in state)....
Definition: isle.h:173
void SetElevatorFloor(ElevatorFloor p_elevFloor)
[AI] Sets the current elevator floor the player is on.
Definition: isle.h:80
MxBool m_unk0x022
[AI] Temporary state variable; persists through serialization, often used for logic gating....
Definition: isle.h:110
LegoNamedPlane m_motocyclePlane
[AI] Serialized/deserialized world placement state for motorcycle.
Definition: isle.h:116
void PlayCptClickDialogue()
[AI] Starts the "Captain Click" dialogue cutscene/playlist with audio and triggers background music f...
Definition: isle.cpp:1462
MxS16 m_elevFloor
[AI] Current floor of the elevator, using enum ElevatorFloor.
Definition: isle.h:95
IsleScript::Script m_currentCptClickDialogue
[AI] Currently playing island script for the cutscene/voiceover event initiated by Captain Click.
Definition: isle.h:89
LegoNamedTexture * m_helicopterJetLeft
[AI] Named texture for left jet on helicopter (needed for restoration/streaming). [AI]
Definition: isle.h:131
LegoNamedTexture * m_dunebuggyFront
[AI] Named texture for dune buggy front (state restoration, streaming). [AI]
Definition: isle.h:155
MxResult Serialize(LegoStorage *p_storage) override
[AI] Serializes all vehicle/named plane and other gameplay state to/from given persistent storage.
Definition: isle.cpp:1322
void SetUnknown21(MxU8 p_unk0x21)
[AI] Sets the state flag at offset 0x021 (purpose: controls certain transitions and checks).
Definition: isle.h:83
MxU32 m_unk0x018
[AI] Internal gameplay state variable; see Get/SetUnknown18 for usage. [AI]
Definition: isle.h:92
LegoNamedTexture * m_helicopterWindshield
[AI] Named texture for helicopter windshield (needed for state restoration, texture streaming)....
Definition: isle.h:128
LegoNamedPlane m_helicopterPlane
[AI] Serialized/deserialized world placement state for helicopter.
Definition: isle.h:125
undefined m_unk0x023
[AI] State variable for plane/channel transitions; exact meaning unknown. [AI]
Definition: isle.h:113
LegoNamedPlane m_skateboardPlane
[AI] Serialized/deserialized world placement state for skateboard.
Definition: isle.h:122
void PlaceActors()
[AI] Places all actors/vehicles in the world at their previously-serialized locations and attaches th...
Definition: isle.cpp:1609
LegoNamedTexture * m_racecarTail
[AI] Named texture for racecar tail (state restoration, streaming). [AI]
Definition: isle.h:170
LegoNamedPlane m_jetskiPlane
[AI] Placement state for jetski in world (serializable). [AI]
Definition: isle.h:140
MxBool m_unk0x01e
[AI] Temporary flag for info center elevator; used to determine if elevator is currently active/trans...
Definition: isle.h:98
LegoNamedTexture * m_racecarBack
[AI] Named texture for racecar back (state restoration, streaming). [AI]
Definition: isle.h:167
MxU32 GetUnknown18()
[AI] Retrieves the internal state variable at offset 0x018 (purpose: current major state,...
Definition: isle.h:68
LegoNamedPlane m_dunebuggyPlane
[AI] Placement state for dune buggy in world (serializable). [AI]
Definition: isle.h:152
ElevatorFloor
[AI] Floor numbers for the info center elevator.
Definition: isle.h:32
@ c_floor3
[AI] 3rd floor
Definition: isle.h:35
@ c_floor2
[AI] 2nd floor
Definition: isle.h:34
@ c_floor1
[AI] 1st floor
Definition: isle.h:33
ElevatorFloor GetElevatorFloor()
[AI] Retrieves the current elevator floor the player is on, as an enum. [AI]
Definition: isle.h:71
MxBool m_planeActive
[AI] Indicates that the airplane cutscene is currently active (info center window)....
Definition: isle.h:104
Act1State()
[AI] Constructs a new instance and resets default state, including initializing cutscene playlist and...
Definition: isle.cpp:1293
const char * ClassName() const override
[AI] Returns class name as string literal for run-time type checking. [AI]
LegoNamedPlane m_racecarPlane
[AI] Placement state for racecar in world (serializable). [AI]
Definition: isle.h:161
Jetski * m_jetski
[AI] Serializable pointer to current jetski object (NULL when not held in state). [AI]
Definition: isle.h:149
MxBool m_unk0x01f
[AI] Temporary flag for info center elevator; often used as a "ready for transition" check....
Definition: isle.h:101
LegoNamedTexture * m_helicopterJetRight
[AI] Named texture for right jet on helicopter (needed for restoration/streaming)....
Definition: isle.h:134
void StopCptClickDialogue()
[AI] Stops the "Captain Click" dialogue cutscene if playing and resets background music....
Definition: isle.cpp:1474
Main game logic and control entity for the Ambulance gameplay activity.
Definition: ambulance.h:75
[AI] Represents the player's bicycle vehicle in LEGO Island, allowing for in-world interactions such ...
Definition: bike.h:15
[AI] Represents the player-controllable dune buggy vehicle in LEGO Island, inheriting movement and in...
Definition: dunebuggy.h:16
[AI] Represents the flyable helicopter vehicle/path actor in the game, handling all in-game behaviors...
Definition: helicopter.h:57
[AI] Represents the main overworld (LEGO Island) in the game, acting as the central hub and state mac...
Definition: isle.h:179
Pizzeria * m_pizzeria
[AI] Pointer to pizzeria scene.
Definition: isle.h:291
void CreateState()
[AI] Reinstantiates/reset the play state in all child objects (radio, vehicles, pizzeria,...
Definition: isle.cpp:1165
LegoGameState::Area m_destLocation
[AI] Next requested world/area to transition to after animation/dialogue/cutscene currently in progre...
Definition: isle.h:327
Act1State * m_act1state
[AI] Points to active Act1State, holding currently serialized vehicle and gameplay data.
Definition: isle.h:285
~Isle() override
[AI] Cleans up Isle world, unregistering notifications and releasing allocated resources/pointer stat...
Definition: isle.cpp:74
MxLong Notify(MxParam &p_param) override
[AI] Handles incoming notifications from various event sources, dispatches to specialized handlers wh...
Definition: isle.cpp:132
SkateBoard * m_skateboard
[AI] Pointer to skateboard actor.
Definition: isle.h:315
Jetski * m_jetski
[AI] Pointer to jetski actor.
Definition: isle.h:321
MxLong HandleControl(LegoControlManagerNotificationParam &p_param)
[AI] Processes control notifications (e.g., elevator, arrow buttons, environment toggles),...
Definition: isle.cpp:285
void FUN_10032620()
[AI] Internal utility to setup camera/actor state after some transitions (e.g., resets view and spawn...
Definition: isle.cpp:861
MxBool HasHelicopter()
[AI] Returns TRUE if the helicopter is currently present and assigned in this world.
Definition: isle.h:237
Ambulance * m_ambulance
[AI] Pointer to ambulance actor.
Definition: isle.h:297
Radio m_radio
[AI] In-world radio/audio playback manager.
Definition: isle.h:324
Pizza * m_pizza
[AI] Pointer to pizza actor.
Definition: isle.h:288
MxBool VTable0x5c() override
[AI] Returns TRUE, marks Isle as valid for 0x5c world-table vtable slot (possibly is-player-world che...
Definition: isle.h:198
void SetDestLocation(LegoGameState::Area p_destLocation)
[AI] Sets destination location for world transitions (are used after certain cutscenes/buttons).
Definition: isle.h:234
MxLong HandleTransitionEnd()
[AI] Handles transitions for all destination logic (scene swaps with audio/video cut,...
Definition: isle.cpp:894
MxLong HandlePathStruct(LegoPathStructNotificationParam &p_param)
[AI] Dispatches Lego path structure notifications (actor/path region completed, unique triggers) to v...
Definition: isle.cpp:468
Helicopter * m_helicopter
[AI] Pointer to helicopter actor (if present).
Definition: isle.h:303
void FUN_10032d30(IsleScript::Script p_script, JukeboxScript::Script p_music, const char *p_cameraLocation, MxBool p_und)
[AI] Facilitates transitions with visual and audio state, camera positioning and palette reset for th...
Definition: isle.cpp:1059
void Add(MxCore *p_object) override
[AI] Adds an object/actor to the Isle world, binding pointers for special-cased vehicles or entities.
Definition: isle.cpp:1103
RaceCar * m_racecar
[AI] Pointer to racecar actor.
Definition: isle.h:318
Bike * m_bike
[AI] Pointer to bike actor.
Definition: isle.h:306
MxBool Escape() override
[AI] Handles exiting from this world (Escape key, area transition, etc.). Manages background audio/sc...
Definition: isle.cpp:1191
@ c_playMusic
[AI] If set, background music plays.
Definition: isle.h:184
@ c_playCamAnims
[AI] If set, enables camera animation sequences.
Definition: isle.h:183
virtual void VTable0x6c(LegoPathActor *p_actor)
[AI] Removes a path-based actor (vehicle, etc.) from the Isle world and unbinds pointers as needed.
Definition: isle.cpp:1146
MxResult Create(MxDSAction &p_dsAction) override
[AI] Sets up the Isle world based on the given MxDSAction (content/scene/act loading entry).
Definition: isle.cpp:91
MxBool IsA(const char *p_name) const override
[AI] Returns whether this or a base class matches the string argument.
MxLong HandleEndAction(MxEndActionNotificationParam &p_param)
[AI] Processes notifications marking the end of actions (animations, audio, transitions),...
Definition: isle.cpp:186
void UpdateGlobe()
[AI] Updates the globe UI in the observation area, enabling the correct presenter's bitmap representi...
Definition: isle.cpp:453
void FUN_10033350()
[AI] Performs world cleanup related to transitions and resets (see source for transition/actor logic)...
Definition: isle.cpp:1248
Isle()
[AI] Creates a new Isle world, initializing all vehicle pointers, radio, and registering for notifica...
Definition: isle.cpp:53
Motocycle * m_motocycle
[AI] Pointer to motorcycle actor.
Definition: isle.h:312
void VTable0x60() override
[AI] Stub function slot; no operation in current implementation. [AI]
Definition: isle.cpp:1185
void ReadyWorld() override
[AI] Prepares the world for play, switching areas if needed and handling music, cutscene,...
Definition: isle.cpp:267
DuneBuggy * m_dunebuggy
[AI] Pointer to dune buggy actor.
Definition: isle.h:309
const char * ClassName() const override
[AI] Returns class name as string literal for RTTI.
JukeBoxEntity * m_jukebox
[AI] Pointer to in-world jukebox entity.
Definition: isle.h:300
void Enable(MxBool p_enable) override
[AI] Enables or disables Isle world objects/logic, forcibly setting input and world activation status...
Definition: isle.cpp:530
void HandleElevatorEndAction()
[AI] Handles the completion of elevator actions, progressing the game/area as appropriate for the cur...
Definition: isle.cpp:238
TowTrack * m_towtrack
[AI] Pointer to tow track actor.
Definition: isle.h:294
[AI] Represents the jetski vehicle placed in the 3D world of LEGO Island.
Definition: jetski.h:19
[AI] Represents the jukebox interactive entity in LEGO Island, handling click events,...
Definition: jukeboxentity.h:15
[AI] Notification parameter for the LegoControlManager, used to propagate information about control e...
Area
Enumeration of all major in-game locations ("areas") for area/scene management and serialization.
Definition: legogamestate.h:92
[AI] Associates a named string with a LegoTexture instance, allowing textures to be referenced symbol...
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
Definition: legopathactor.h:32
[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
Abstract base class providing an interface for file-like storage with binary and text read/write oper...
Definition: legostorage.h:16
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
Definition: legoworld.h:49
Motocycle is an IslePathActor representing the motorcycle vehicle the user can drive in LEGO Island.
Definition: motorcycle.h:15
[AI] Base virtual class for all Mindscape engine (Mx) objects.
Definition: mxcore.h:15
[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
Interactive pizza entity actor; manages the in-game pizza delivery sequence and reacts to mission tri...
Definition: pizza.h:263
[AI] Actor representing the pizzeria (Pizza Shop) as an interactive entity in the LEGO Island world.
Definition: pizzeria.h:116
[AI] Represents the drivable race car entity in the LEGO Island world.
Definition: racecar.h:24
[AI] High-level manager for the in-game radio, handling notifications, playing/stopping,...
Definition: radio.h:77
[AI] Represents the skateboard vehicle actor used in the minigame and cutscenes.
Definition: skateboard.h:14
[AI] 3D world actor for the Tow Track mini-game; manages Tow Track mission logic, scene activation an...
Definition: towtrack.h:83
#define TRUE
Definition: d3drmdef.h:28
unsigned char undefined
Definition: decomp.h:26
#define NULL
[AI] Null pointer value (C/C++ semantics).
Definition: legotypes.h:26
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
unsigned char MxU8
[AI]
Definition: mxtypes.h:8
unsigned int MxU32
[AI]
Definition: mxtypes.h:32
[AI] Represents a named 3D plane with orientation and position, used to describe places or camera tar...
[AI] Playlist structure representing an indexed list of object IDs with next-item selection strategie...
Definition: legostate.h:36