Isle
Loading...
Searching...
No Matches
legoobjectfactory.cpp
Go to the documentation of this file.
1#include "legoobjectfactory.h"
2
3// Headers need to be included in a certain order to match the original binary.
4// Some of the following headers were probably not directly included,
5// but were included from one of the higher level classes. We should attempt
6// to reverse engineer the inclusion "graph" at some point. Until then, to maintain
7// correct order in the binary, we include them in the order we want here.
8// clang-format off
9#include "mxpresenter.h"
10#include "legoentity.h"
11#include "legopathactor.h"
12// The below header inclusions should be sound.
15#include "legoactorpresenter.h"
16#include "legomodelpresenter.h"
18#include "legopartpresenter.h"
20#include "lego3dwavepresenter.h"
21#include "jetskirace.h"
22#include "carrace.h"
23#include "score.h"
24#include "legoact2.h"
25#include "helicopter.h"
26#include "act2policestation.h"
27#include "act3.h"
28#include "doors.h"
29#include "pizzeria.h"
30#include "buildings.h"
31#include "jukebox.h"
32// clang-format on
33
34#include "act2actor.h"
35#include "act2brick.h"
36#include "act2genactor.h"
37#include "act2policestation.h"
38#include "act3.h"
39#include "act3actors.h"
40#include "ambulance.h"
41#include "bike.h"
42#include "buildings.h"
43#include "bumpbouy.h"
44#include "carrace.h"
45#include "decomp.h"
46#include "doors.h"
47#include "dunebuggy.h"
48#include "elevatorbottom.h"
49#include "gasstation.h"
50#include "helicopter.h"
51#include "historybook.h"
52#include "hospital.h"
53#include "infocenter.h"
54#include "infocenterdoor.h"
55#include "isle.h"
56#include "jetski.h"
57#include "jetskirace.h"
58#include "jukebox.h"
59#include "jukeboxentity.h"
60#include "lego3dwavepresenter.h"
61#include "legoact2.h"
63#include "legoactor.h"
64#include "legoactorpresenter.h"
65#include "legoanimactor.h"
67#include "legoanimmmpresenter.h"
68#include "legoanimpresenter.h"
69#include "legocarbuild.h"
71#include "legoentity.h"
72#include "legoentitypresenter.h"
78#include "legometerpresenter.h"
79#include "legomodelpresenter.h"
81#include "legopartpresenter.h"
82#include "legopathactor.h"
83#include "legopathpresenter.h"
85#include "legoracers.h"
86#include "legoracespecial.h"
88#include "legoworld.h"
89#include "legoworldpresenter.h"
90#include "misc.h"
91#include "motorcycle.h"
93#include "mxcontrolpresenter.h"
94#include "pizza.h"
95#include "pizzeria.h"
96#include "police.h"
97#include "racecar.h"
98#include "raceskel.h"
99#include "registrationbook.h"
100#include "score.h"
101#include "skateboard.h"
102#include "towtrack.h"
103
105
106// FUNCTION: LEGO1 0x10006e40
107// FUNCTION: BETA10 0x1009e930
109{
110 m_idLegoEntityPresenter = MxAtomId("LegoEntityPresenter", e_exact);
111 m_idLegoActorPresenter = MxAtomId("LegoActorPresenter", e_exact);
112 m_idLegoWorldPresenter = MxAtomId("LegoWorldPresenter", e_exact);
113 m_idLegoWorld = MxAtomId("LegoWorld", e_exact);
114 m_idLegoAnimPresenter = MxAtomId("LegoAnimPresenter", e_exact); // duplicate
115 m_idLegoModelPresenter = MxAtomId("LegoModelPresenter", e_exact);
116 m_idLegoTexturePresenter = MxAtomId("LegoTexturePresenter", e_exact);
117 m_idLegoPhonemePresenter = MxAtomId("LegoPhonemePresenter", e_exact);
118 m_idLegoFlcTexturePresenter = MxAtomId("LegoFlcTexturePresenter", e_exact);
119 m_idLegoPalettePresenter = MxAtomId("LegoPalettePresenter", e_exact);
120 m_idLegoPathPresenter = MxAtomId("LegoPathPresenter", e_exact);
121 m_idLegoAnimPresenter = MxAtomId("LegoAnimPresenter", e_exact);
122 m_idLegoLoopingAnimPresenter = MxAtomId("LegoLoopingAnimPresenter", e_exact);
123 m_idLegoLocomotionAnimPresenter = MxAtomId("LegoLocomotionAnimPresenter", e_exact);
124 m_idLegoHideAnimPresenter = MxAtomId("LegoHideAnimPresenter", e_exact);
125 m_idLegoPartPresenter = MxAtomId("LegoPartPresenter", e_exact);
126 m_idLegoCarBuildAnimPresenter = MxAtomId("LegoCarBuildAnimPresenter", e_exact);
127 m_idLegoActionControlPresenter = MxAtomId("LegoActionControlPresenter", e_exact);
128 m_idLegoMeterPresenter = MxAtomId("LegoMeterPresenter", e_exact);
129 m_idLegoLoadCacheSoundPresenter = MxAtomId("LegoLoadCacheSoundPresenter", e_exact);
130 m_idLego3DWavePresenter = MxAtomId("Lego3DWavePresenter", e_exact);
131 m_idLegoActor = MxAtomId("LegoActor", e_exact);
132 m_idLegoPathActor = MxAtomId("LegoPathActor", e_exact);
133 m_idLegoRaceCar = MxAtomId("LegoRaceCar", e_exact);
134 m_idLegoJetski = MxAtomId("LegoJetski", e_exact);
135 m_idJetskiRace = MxAtomId("JetskiRace", e_exact);
136 m_idLegoEntity = MxAtomId("LegoEntity", e_exact);
137 m_idLegoCarRaceActor = MxAtomId("LegoCarRaceActor", e_exact);
138 m_idLegoJetskiRaceActor = MxAtomId("LegoJetskiRaceActor", e_exact);
139 m_idLegoCarBuild = MxAtomId("LegoCarBuild", e_exact);
140 m_idInfocenter = MxAtomId("Infocenter", e_exact);
141 m_idLegoAnimActor = MxAtomId("LegoAnimActor", e_exact);
142 m_idMxControlPresenter = MxAtomId("MxControlPresenter", e_exact);
143 m_idRegistrationBook = MxAtomId("RegistrationBook", e_exact);
144 m_idHistoryBook = MxAtomId("HistoryBook", e_exact);
145 m_idElevatorBottom = MxAtomId("ElevatorBottom", e_exact);
146 m_idInfocenterDoor = MxAtomId("InfocenterDoor", e_exact);
147 m_idScore = MxAtomId("Score", e_exact);
148 m_idScoreState = MxAtomId("ScoreState", e_exact);
149 m_idHospital = MxAtomId("Hospital", e_exact);
150 m_idIsle = MxAtomId("Isle", e_exact);
151 m_idPolice = MxAtomId("Police", e_exact);
152 m_idGasStation = MxAtomId("GasStation", e_exact);
153 m_idLegoAct2 = MxAtomId("LegoAct2", e_exact);
154 m_idLegoAct2State = MxAtomId("LegoAct2State", e_exact);
155 m_idCarRace = MxAtomId("CarRace", e_exact);
156 m_idLegoRaceCarBuildState = MxAtomId("LegoRaceCarBuildState", e_exact);
157 m_idLegoCopterBuildState = MxAtomId("LegoCopterBuildState", e_exact);
158 m_idLegoDuneCarBuildState = MxAtomId("LegoDuneCarBuildState", e_exact);
159 m_idLegoJetskiBuildState = MxAtomId("LegoJetskiBuildState", e_exact);
160 m_idHospitalState = MxAtomId("HospitalState", e_exact);
161 m_idInfocenterState = MxAtomId("InfocenterState", e_exact);
162 m_idPoliceState = MxAtomId("PoliceState", e_exact);
163 m_idGasStationState = MxAtomId("GasStationState", e_exact);
164 m_idSkateBoard = MxAtomId("SkateBoard", e_exact);
165 m_idHelicopter = MxAtomId("Helicopter", e_exact);
166 m_idHelicopterState = MxAtomId("HelicopterState", e_exact);
167 m_idDuneBuggy = MxAtomId("DuneBuggy", e_exact);
168 m_idPizza = MxAtomId("Pizza", e_exact);
169 m_idPizzaMissionState = MxAtomId("PizzaMissionState", e_exact);
170 m_idAct2Actor = MxAtomId("Act2Actor", e_exact);
171 m_idAct2Brick = MxAtomId("Act2Brick", e_exact);
172 m_idAct2GenActor = MxAtomId("Act2GenActor", e_exact);
173 m_idAct2PoliceStation = MxAtomId("Act2PoliceStation", e_exact);
174 m_idAct3 = MxAtomId("Act3", e_exact);
175 m_idAct3State = MxAtomId("Act3State", e_exact);
176 m_idDoors = MxAtomId("Doors", e_exact);
177 m_idLegoAnimMMPresenter = MxAtomId("LegoAnimMMPresenter", e_exact);
178 m_idRaceCar = MxAtomId("RaceCar", e_exact);
179 m_idJetski = MxAtomId("Jetski", e_exact);
180 m_idBike = MxAtomId("Bike", e_exact);
181 m_idMotocycle = MxAtomId("Motocycle", e_exact);
182 m_idAmbulance = MxAtomId("Ambulance", e_exact);
183 m_idAmbulanceMissionState = MxAtomId("AmbulanceMissionState", e_exact);
184 m_idTowTrack = MxAtomId("TowTrack", e_exact);
185 m_idTowTrackMissionState = MxAtomId("TowTrackMissionState", e_exact);
186 m_idAct3Cop = MxAtomId("Act3Cop", e_exact);
187 m_idAct3Brickster = MxAtomId("Act3Brickster", e_exact);
188 m_idAct3Shark = MxAtomId("Act3Shark", e_exact);
189 m_idBumpBouy = MxAtomId("BumpBouy", e_exact);
190 m_idAct3Actor = MxAtomId("Act3Actor", e_exact);
191 m_idJetskiRaceState = MxAtomId("JetskiRaceState", e_exact);
192 m_idCarRaceState = MxAtomId("CarRaceState", e_exact);
193 m_idAct1State = MxAtomId("Act1State", e_exact);
194 m_idPizzeria = MxAtomId("Pizzeria", e_exact);
195 m_idPizzeriaState = MxAtomId("PizzeriaState", e_exact);
196 m_idInfoCenterEntity = MxAtomId("InfoCenterEntity", e_exact);
197 m_idHospitalEntity = MxAtomId("HospitalEntity", e_exact);
198 m_idGasStationEntity = MxAtomId("GasStationEntity", e_exact);
199 m_idPoliceEntity = MxAtomId("PoliceEntity", e_exact);
200 m_idBeachHouseEntity = MxAtomId("BeachHouseEntity", e_exact);
201 m_idRaceStandsEntity = MxAtomId("RaceStandsEntity", e_exact);
202 m_idJukeBoxEntity = MxAtomId("JukeBoxEntity", e_exact);
203 m_idRadioState = MxAtomId("RadioState", e_exact);
204 m_idCaveEntity = MxAtomId("CaveEntity", e_exact);
205 m_idJailEntity = MxAtomId("JailEntity", e_exact);
206 m_idMxCompositeMediaPresenter = MxAtomId("MxCompositeMediaPresenter", e_exact);
207 m_idJukeBox = MxAtomId("JukeBox", e_exact);
208 m_idJukeBoxState = MxAtomId("JukeBoxState", e_exact);
209 m_idRaceSkel = MxAtomId("RaceSkel", e_exact);
210 m_idAnimState = MxAtomId("AnimState", e_exact);
211}
212
213// FUNCTION: LEGO1 0x10009a90
214// FUNCTION: BETA10 0x100a1021
216{
217 MxCore* object = NULL;
218 MxAtomId atom(p_name, e_exact);
219
220 if (m_idLegoModelPresenter == atom) {
221 object = new LegoModelPresenter();
222 }
223 else if (m_idLegoTexturePresenter == atom) {
224 object = new LegoTexturePresenter();
225 }
226 else if (m_idLegoPhonemePresenter == atom) {
227 object = new LegoPhonemePresenter();
228 }
229 else if (m_idLegoFlcTexturePresenter == atom) {
230 object = new LegoFlcTexturePresenter();
231 }
232 else if (m_idLegoEntityPresenter == atom) {
233 object = new LegoEntityPresenter();
234 }
235 else if (m_idLegoActorPresenter == atom) {
236 object = new LegoActorPresenter();
237 }
238 else if (m_idLegoWorldPresenter == atom) {
239 object = new LegoWorldPresenter();
240 }
241 else if (m_idLegoWorld == atom) {
242 object = new LegoWorld();
243 }
244 else if (m_idLegoPalettePresenter == atom) {
245 object = new LegoPalettePresenter();
246 }
247 else if (m_idLegoPathPresenter == atom) {
248 object = new LegoPathPresenter();
249 }
250 else if (m_idLegoAnimPresenter == atom) {
251 object = new LegoAnimPresenter();
252 }
253 else if (m_idLegoLoopingAnimPresenter == atom) {
254 object = new LegoLoopingAnimPresenter();
255 }
256 else if (m_idLegoLocomotionAnimPresenter == atom) {
257 object = new LegoLocomotionAnimPresenter();
258 }
259 else if (m_idLegoHideAnimPresenter == atom) {
260 object = new LegoHideAnimPresenter();
261 }
262 else if (m_idLegoPartPresenter == atom) {
263 object = new LegoPartPresenter();
264 }
265 else if (m_idLegoCarBuildAnimPresenter == atom) {
266 object = new LegoCarBuildAnimPresenter();
267 }
268 else if (m_idLegoActionControlPresenter == atom) {
269 object = new LegoActionControlPresenter();
270 }
271 else if (m_idLegoMeterPresenter == atom) {
272 object = new LegoMeterPresenter();
273 }
274 else if (m_idLegoLoadCacheSoundPresenter == atom) {
275 object = new LegoLoadCacheSoundPresenter();
276 }
277 else if (m_idLego3DWavePresenter == atom) {
278 object = new Lego3DWavePresenter();
279 }
280 else if (m_idLegoActor == atom) {
281 object = new LegoActor();
282 }
283 else if (m_idLegoPathActor == atom) {
284 object = new LegoPathActor();
285 }
286 else if (m_idJetskiRace == atom) {
287 object = new JetskiRace();
288 }
289 else if (m_idLegoEntity == atom) {
290 object = new LegoEntity();
291 }
292 else if (m_idLegoRaceCar == atom) {
293 object = new LegoRaceCar();
294 }
295 else if (m_idLegoJetski == atom) {
296 object = new LegoJetski();
297 }
298 else if (m_idLegoCarRaceActor == atom) {
299 object = new LegoCarRaceActor();
300 }
301 else if (m_idLegoJetskiRaceActor == atom) {
302 object = new LegoJetskiRaceActor();
303 }
304 else if (m_idLegoCarBuild == atom) {
305 object = new LegoCarBuild();
306 }
307 else if (m_idInfocenter == atom) {
308 object = new Infocenter();
309 }
310 else if (m_idLegoAnimActor == atom) {
311 object = new LegoAnimActor();
312 }
313 else if (m_idMxControlPresenter == atom) {
314 object = new MxControlPresenter();
315 }
316 else if (m_idRegistrationBook == atom) {
317 object = new RegistrationBook();
318 }
319 else if (m_idHistoryBook == atom) {
320 object = new HistoryBook();
321 }
322 else if (m_idElevatorBottom == atom) {
323 object = new ElevatorBottom();
324 }
325 else if (m_idInfocenterDoor == atom) {
326 object = new InfocenterDoor();
327 }
328 else if (m_idScore == atom) {
329 object = new Score();
330 }
331 else if (m_idScoreState == atom) {
332 object = new ScoreState();
333 }
334 else if (m_idHospital == atom) {
335 object = new Hospital();
336 }
337 else if (m_idIsle == atom) {
338 object = new Isle();
339 }
340 else if (m_idPolice == atom) {
341 object = new Police();
342 }
343 else if (m_idGasStation == atom) {
344 object = new GasStation();
345 }
346 else if (m_idLegoAct2 == atom) {
347 object = new LegoAct2();
348 }
349 else if (m_idLegoAct2State == atom) {
350 object = new LegoAct2State();
351 }
352 else if (m_idCarRace == atom) {
353 object = new CarRace();
354 }
355 else if (m_idLegoRaceCarBuildState == atom || m_idLegoCopterBuildState == atom || m_idLegoDuneCarBuildState == atom || m_idLegoJetskiBuildState == atom) {
356 object = new LegoVehicleBuildState(p_name);
357 }
358 else if (m_idHospitalState == atom) {
359 object = new HospitalState();
360 }
361 else if (m_idInfocenterState == atom) {
362 object = new InfocenterState();
363 }
364 else if (m_idPoliceState == atom) {
365 object = new PoliceState();
366 }
367
368 if (object != NULL) {
369 return object;
370 }
371
372 if (m_idGasStationState == atom) {
373 object = new GasStationState();
374 }
375 else if (m_idSkateBoard == atom) {
376 object = new SkateBoard();
377 }
378 else if (m_idHelicopter == atom) {
379 object = new Helicopter();
380 }
381 else if (m_idHelicopterState == atom) {
382 object = new HelicopterState();
383 }
384 else if (m_idDuneBuggy == atom) {
385 object = new DuneBuggy();
386 }
387 else if (m_idPizza == atom) {
388 object = new Pizza();
389 }
390 else if (m_idPizzaMissionState == atom) {
391 object = new PizzaMissionState();
392 }
393 else if (m_idAct2Actor == atom) {
394 Act2Actor* actor = new Act2Actor();
395 ((LegoAct2*) CurrentWorld())->SetUnknown0x1138(actor);
396 object = actor;
397 }
398 else if (m_idAct2Brick == atom) {
399 object = new Act2Brick();
400 }
401 else if (m_idAct2GenActor == atom) {
402 object = new Act2GenActor();
403 }
404 else if (m_idAct2PoliceStation == atom) {
405 object = new Act2PoliceStation();
406 }
407 else if (m_idAct3 == atom) {
408 object = new Act3();
409 }
410 else if (m_idAct3State == atom) {
411 object = new Act3State();
412 }
413 else if (m_idDoors == atom) {
414 object = new Doors();
415 }
416 else if (m_idLegoAnimMMPresenter == atom) {
417 object = new LegoAnimMMPresenter();
418 }
419 else if (m_idRaceCar == atom) {
420 object = new RaceCar();
421 }
422 else if (m_idJetski == atom) {
423 object = new Jetski();
424 }
425 else if (m_idBike == atom) {
426 object = new Bike();
427 }
428 else if (m_idMotocycle == atom) {
429 object = new Motocycle();
430 }
431 else if (m_idAmbulance == atom) {
432 object = new Ambulance();
433 }
434 else if (m_idAmbulanceMissionState == atom) {
435 object = new AmbulanceMissionState();
436 }
437 else if (m_idTowTrack == atom) {
438 object = new TowTrack();
439 }
440 else if (m_idTowTrackMissionState == atom) {
441 object = new TowTrackMissionState();
442 }
443 else if (m_idAct3Cop == atom) {
444 object = new Act3Cop();
445 }
446 else if (m_idAct3Brickster == atom) {
447 object = new Act3Brickster();
448 }
449 else if (m_idAct3Shark == atom) {
450 object = new Act3Shark();
451 }
452 else if (m_idAct3Actor == atom) {
453 object = new Act3Actor();
454 }
455 else if (m_idBumpBouy == atom) {
456 object = new BumpBouy();
457 }
458 else if (m_idJetskiRaceState == atom) {
459 object = new JetskiRaceState();
460 }
461 else if (m_idCarRaceState == atom) {
462 object = new CarRaceState();
463 }
464 else if (m_idAct1State == atom) {
465 object = new Act1State();
466 }
467 else if (m_idPizzeria == atom) {
468 object = new Pizzeria();
469 }
470 else if (m_idPizzeriaState == atom) {
471 object = new PizzeriaState();
472 }
473 else if (m_idInfoCenterEntity == atom) {
474 object = new InfoCenterEntity();
475 }
476 else if (m_idHospitalEntity == atom) {
477 object = new HospitalEntity();
478 }
479 else if (m_idGasStationEntity == atom) {
480 object = new GasStationEntity();
481 }
482 else if (m_idPoliceEntity == atom) {
483 object = new PoliceEntity();
484 }
485 else if (m_idBeachHouseEntity == atom) {
486 object = new BeachHouseEntity();
487 }
488 else if (m_idJukeBoxEntity == atom) {
489 object = new JukeBoxEntity();
490 }
491 else if (m_idRaceStandsEntity == atom) {
492 object = new RaceStandsEntity();
493 }
494 else if (m_idRadioState == atom) {
495 object = new RadioState();
496 }
497 else if (m_idCaveEntity == atom) {
498 object = new CaveEntity();
499 }
500 else if (m_idJailEntity == atom) {
501 object = new JailEntity();
502 }
503 else if (m_idMxCompositeMediaPresenter == atom) {
504 object = new MxCompositeMediaPresenter();
505 }
506 else if (m_idJukeBox == atom) {
507 object = new JukeBox();
508 }
509 else if (m_idJukeBoxState == atom) {
510 object = new JukeBoxState();
511 }
512 else if (m_idRaceSkel == atom) {
513 object = new RaceSkel();
514 }
515 else if (m_idAnimState == atom) {
516 object = new AnimState();
517 }
518 else {
519 object = MxObjectFactory::Create(p_name);
520 }
521
522 // clang-format off
523 assert(object!=NULL);
524 // clang-format on
525
526 return object;
527}
528
529// FUNCTION: LEGO1 0x1000fb30
531{
532 delete p_object;
533}
[AI] Holds state and transient gameplay data for the first act on Lego Island.
Definition: isle.h:29
[AI] Act2 mission-specific actor class, with custom state and animation handling for Act 2 of the sto...
Definition: act2actor.h:17
[AI] Represents a special 'brick' object in the LEGO Island "Act 2" sequence, derived from LegoPathAc...
Definition: act2brick.h:12
[AI] An actor that extends LegoPathActor with special collision logic for "Act2Gen" scene logic.
Definition: act2genactor.h:13
[AI] Represents the Act 2 Police Station entity in LEGO Island.
[AI] Represents a generic animatable actor in Act 3, supporting path following and custom animation t...
Definition: act3actors.h:93
[AI] Represents the Brickster actor in Act 3, with AI and scene logic for stealing pizzas and causing...
Definition: act3actors.h:245
[AI] Represents a police officer actor in Act 3, supporting specific cop AI actions,...
Definition: act3actors.h:158
[AI] Represents the shark actor for Act 3 of the LEGO Island game.
Definition: act3actors.h:21
[AI] Holds persistent state and status variables for Act 3 mission, saved between world reloads and p...
Definition: act3.h:126
[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects,...
Definition: act3.h:182
Holds state and scoring information for the Ambulance mission.
Definition: ambulance.h:12
Main game logic and control entity for the Ambulance gameplay activity.
Definition: ambulance.h:75
[AI] Persistent serializable animation state for resuming animations and restoring global animation p...
[AI] Entity for the Beach House building in LEGO Island.
Definition: buildings.h:125
[AI] Represents the player's bicycle vehicle in LEGO Island, allowing for in-world interactions such ...
Definition: bike.h:15
[AI] Represents a bumpable buoy in the world that handles user interactions, specifically the Jetski ...
Definition: bumpbouy.h:17
The state object used for the car race mini-game.
Definition: carrace.h:16
Implements the LEGO Island car race game mode.
Definition: carrace.h:53
[AI] Entity for the Cave building in LEGO Island.
Definition: buildings.h:206
[AI] Represents a special LegoPathActor controlling the animation and logic of a pair of doors,...
Definition: doors.h:17
[AI] Represents the player-controllable dune buggy vehicle in LEGO Island, inheriting movement and in...
Definition: dunebuggy.h:16
[AI] This class represents the "Elevator Bottom" area in the LEGO Island game.
[AI] Entity for the Gas Station building in LEGO Island.
Definition: buildings.h:44
Maintains persistent, serializable state information for the gas station/garage area,...
Definition: gasstation.h:18
The in-game gas station (garage) area/world logic controller, handling all interactive gameplay,...
Definition: gasstation.h:73
[AI] Game state entity specialized for tracking Helicopter-related state during gameplay.
Definition: helicopter.h:14
[AI] Represents the flyable helicopter vehicle/path actor in the game, handling all in-game behaviors...
Definition: helicopter.h:57
[AI] The HistoryBook class represents the "History Book" world/scene shown in LEGO Island,...
Definition: historybook.h:17
[AI] Entity for the Hospital building in LEGO Island.
Definition: buildings.h:71
[AI] State-holding class for the hospital area; persists area-specific progress and variables between...
Definition: hospital.h:21
[AI] Implements the main 3D area and logic flow for the Hospital location/scene in LEGO Island.
Definition: hospital.h:111
[AI] Entity for the Information Center building in LEGO Island.
Definition: buildings.h:12
[AI] Represents the door world for the information center, handling control, transitions and area swi...
[AI] Represents the state of the Infocenter area, storing scripts, dialogue playlists and UI letter p...
Definition: infocenter.h:23
[AI] Manages Infocenter world logic, UI, cutscenes, dialogue, and area transitions.
Definition: infocenter.h:192
[AI] Represents the main overworld (LEGO Island) in the game, acting as the central hub and state mac...
Definition: isle.h:179
[AI] Entity for the Jail building in LEGO Island.
Definition: buildings.h:178
[AI] Per-race state data and logic holder for JetskiRace, used for tracking player and AI standings,...
Definition: jetskirace.h:107
[AI] LEGO Island's "Jetski" racing game logic and presenter class, derived from LegoRace.
Definition: jetskirace.h:13
[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] Represents the music selection state for the Jukebox in the game.
Definition: jukebox.h:14
[AI] Represents the Jukebox world environment in the game—handles display, state, notifications,...
Definition: jukebox.h:53
[AI] Handles the presentation of 3D positional audio using DirectSound buffers within the LEGO Island...
Represents the state object for Act 2 of the game.
Definition: legoact2.h:25
Implements the world and game logic for Act 2.
Definition: legoact2.h:98
[AI] Presenter for controlling action logic (e.g., invoking named actions such as "RUN",...
[AI] Handles presentation logic specific to LegoActor entities, such as their instantiation,...
[AI] Represents an actor (character) entity in the LEGO Island 3D world, providing specific actor log...
Definition: legoactor.h:12
[AI] Path-based actor which supports skeletal/mesh animation via an animation tree and multiple anima...
Definition: legoanimactor.h:49
[AI] Composite presenter class that manages a multi-media animation sequence.
[AI] Handles playback and synchronization of animated LEGO objects, including variable substitution,...
[AI] Handles the logic and animation presentation for the LEGO Island car-building activity,...
[AI] World implementation for the LEGO vehicle builder (Racecar, Copter, Dune Car,...
Definition: legocarbuild.h:97
[AI] Specialized actor class for car-based racing in LEGO Island racing sequences....
[AI] Presenter responsible for managing the lifecycle, location, and logic for a LegoEntity instance ...
[AI] Represents an entity that can be placed and managed in the LEGO Island world.
Definition: legoentity.h:16
[AI] Presenter for rendering FLC animation frames as textures in the LEGO engine.
[AI] Presenter class responsible for controlling animations that hide or show actors based on animati...
[AI] A racing actor subclass representing jetski (water-based) vehicles. Modifies car parameters and ...
[AI] Represents a Jetski actor in the race, combining behavior from LegoJetskiRaceActor and LegoRaceM...
Definition: legoracers.h:60
Derived presenter class used for loading and creating cached sound objects from streamed audio data.
[AI] Specialized presenter class for handling locomotion animation playback and state in the LEGO Isl...
[AI] Presenter for looping animated sequences in the LEGO Island engine.
Presenter class for displaying and updating a graphical meter element, such as a progress bar or heal...
[AI] Presenter class for managing 3D model (ROI) presentation and their relationship with entities in...
[AI] Object factory for the LEGO Island game, responsible for instantiating all game-specific entitie...
void Destroy(MxCore *p_object) override
[AI] Destroys an object that was previously created by this factory.
MxCore * Create(const char *p_name) override
[AI] Creates an object by name.
Class responsible for presenting and handling palettes for video sequences that require palette manag...
[AI] Presents and loads Lego part definitions from SI chunks and manages their installation in ViewLO...
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
Definition: legopathactor.h:32
[AI] Presenter class for loading and managing path data from scripts/actions, used for actor pathing ...
Class responsible for presenting lip-synced ("phoneme") mouth animations on LEGO character head textu...
[AI] Represents a Race Car actor in the game, combining advanced pathing, skeleton kick logic,...
Definition: legoracers.h:167
[AI] Manages the loading, storage, and management of named textures for the LEGO Island engine.
[AI] Represents the persistent state of the LEGO vehicle build world, tracking animation and part pla...
Definition: legocarbuild.h:24
[AI] Presenter for the entire LEGO world, responsible for loading, parsing, and managing world entiti...
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] Atomized (unique) string identifier, managed by reference counting.
Definition: mxatom.h:124
Composite presenter for handling multiple synchronized media actions.
[AI] Presenter for UI controls, supporting toggles, grids, and "map" style controls with multiple int...
[AI] Base virtual class for all Mindscape engine (Mx) objects.
Definition: mxcore.h:15
virtual MxCore * Create(const char *p_name)
[AI] Creates a new instance of the class matching the provided string name.
Pizza mission state for the pizza delivery minigame and related characters.
Definition: pizza.h:21
Interactive pizza entity actor; manages the in-game pizza delivery sequence and reacts to mission tri...
Definition: pizza.h:263
[AI] Stores all state information for the pizzeria (Pizza Shop) minigame.
Definition: pizzeria.h:21
[AI] Actor representing the pizzeria (Pizza Shop) as an interactive entity in the LEGO Island world.
Definition: pizzeria.h:116
[AI] Entity for the Police building in LEGO Island.
Definition: buildings.h:98
[AI] Represents the state information specific to the Police area of the game.
Definition: police.h:19
[AI] Main world object for the Police Station area in LEGO Island.
Definition: police.h:71
[AI] Represents the drivable race car entity in the LEGO Island world.
Definition: racecar.h:24
[AI] Specialized skeleton animation actor for LEGO Island car racing sequences.
Definition: raceskel.h:24
[AI] Entity for the Race Stands (grandstands) building in LEGO Island.
Definition: buildings.h:152
[AI] Handles and stores state for the in-game radio, including track playlists, cycling,...
Definition: radio.h:18
Derived world for handling the user registration book/infocenter name entry interface.
[AI] State object used to track the status of the Score/High Score area, particularly whether the edu...
Definition: score.h:15
[AI] Implements the InfoScore/High Score game world/area, including score table display and handling ...
Definition: score.h:66
[AI] Represents the skateboard vehicle actor used in the minigame and cutscenes.
Definition: skateboard.h:14
[AI] State class for the TowTrack mini-game, storing scores by character and handling their serializa...
Definition: towtrack.h:17
[AI] 3D world actor for the Tow Track mini-game; manages Tow Track mission logic, scene activation an...
Definition: towtrack.h:83
#define DECOMP_SIZE_ASSERT(T, S)
Definition: decomp.h:19
#define NULL
[AI] Null pointer value (C/C++ semantics).
Definition: legotypes.h:26
LegoWorld * CurrentWorld()
[AI] Accessor for the currently active LegoWorld instance. [AI]
Definition: misc.cpp:93
@ e_exact
[AI] Match the string exactly, no case change.
Definition: mxatom.h:106