132 m_dragPresenter =
NULL;
133 m_infocenterState =
NULL;
139 memset(&m_glowInfo, 0,
sizeof(m_glowInfo));
145 m_infoManDialogueTimer = 0;
146 m_bookAnimationTimer = 0;
167 }
while (i < m_infocenterState->GetMaxNameLength());
191 if (!m_infocenterState) {
208 for (i = 0; i < count; i++) {
251 result = HandleButtonUp(
257 result = HandleMouseMove(
267 m_bookAnimationTimer = 0;
269 if (m_infocenterState->
m_unk0x74 == 0x0c) {
273 else if (m_destLocation != 0) {
307 switch (m_selectedCharacter) {
327 UpdateFrameHot(
TRUE);
344 switch (m_currentCutscene) {
372 m_bookAnimationTimer = 1;
379 switch (m_currentCutscene) {
406 if (action->
GetObjectId() == m_currentInfomainScript) {
421 m_infoManDialogueTimer = 1;
429 if (action->
GetObjectId() == m_currentInfomainScript) {
442 m_infoManDialogueTimer = 0;
443 m_bookAnimationTimer = 0;
463 m_bookAnimationTimer = 1;
484 m_bookAnimationTimer = 1;
497 m_bookAnimationTimer = 1;
611void Infocenter::InitializeBitmaps()
632 assert(m_glowInfo[0].m_destCtl);
637 assert(m_glowInfo[1].m_destCtl);
642 assert(m_glowInfo[1].m_destCtl);
647 assert(m_glowInfo[3].m_destCtl);
652 assert(m_glowInfo[4].m_destCtl);
657 assert(m_glowInfo[5].m_destCtl);
662 assert(m_glowInfo[6].m_destCtl);
669 UpdateFrameHot(
TRUE);
676 if (m_dragPresenter) {
690 FUN_10070d10(p_x, p_y);
710 m_bookAnimationTimer = 1;
724 m_currentInfomainScript = script;
749 if (m_dragPresenter) {
757 m_selectedCharacter =
e_mama;
760 m_selectedCharacter =
e_papa;
763 m_selectedCharacter =
e_nick;
770 if (control !=
NULL) {
771 m_infoManDialogueTimer = 0;
775 if (m_selectedCharacter ==
e_pepper) {
783 if (m_selectedCharacter ==
e_mama) {
791 if (m_selectedCharacter ==
e_papa) {
799 if (m_selectedCharacter ==
e_nick) {
807 if (m_selectedCharacter ==
e_laura) {
817 if (m_unk0x1c8 != -1) {
818 m_infoManDialogueTimer = 0;
820 switch (m_glowInfo[m_unk0x1c8].m_unk0x04) {
824 switch (m_selectedCharacter) {
843 if (m_selectedCharacter) {
849 if (m_selectedCharacter) {
855 if (m_selectedCharacter) {
861 if (m_selectedCharacter) {
867 if (m_selectedCharacter) {
873 if (m_selectedCharacter) {
883 m_dragPresenter =
NULL;
895 switch (m_selectedCharacter) {
930 PlayAction(dialogueToPlay);
933 UpdateFrameHot(
TRUE);
945 m_infoManDialogueTimer = 0;
1089 UpdateFrameHot(
FALSE);
1093 UpdateFrameHot(
FALSE);
1097 UpdateFrameHot(
FALSE);
1101 UpdateFrameHot(
FALSE);
1105 UpdateFrameHot(
FALSE);
1110 PlayAction(actionToPlay);
1115 assert(m_dragPresenter);
1130 if (sender ==
NULL) {
1131 if (m_infocenterState->
m_unk0x74 == 8) {
1132 m_infoManDialogueTimer = 0;
1137 else if (sender->
IsA(
"MxEntity") && m_infocenterState->
m_unk0x74 != 5 && m_infocenterState->
m_unk0x74 != 12) {
1140 m_infoManDialogueTimer = 0;
1150 PlayAction(objectId);
1156 if (m_infocenterState->
m_unk0x74 == 8) {
1157 StopCurrentAction();
1165 if (m_infocenterState->
m_unk0x74 == 8) {
1192 StopCurrentAction();
1225 if (m_infoManDialogueTimer != 0 && (m_infoManDialogueTimer += 100) > 25000) {
1227 m_infoManDialogueTimer = 0;
1230 if (m_bookAnimationTimer != 0 && (m_bookAnimationTimer += 100) > 3000) {
1231 PlayBookAnimation();
1232 m_bookAnimationTimer = 1;
1235 if (m_unk0x1d6 != 0) {
1238 if (m_unk0x1d6 > 3400 && m_unk0x1d6 < 3650) {
1241 else if (m_unk0x1d6 > 3650 && m_unk0x1d6 < 3900) {
1244 else if (m_unk0x1d6 > 3900 && m_unk0x1d6 < 4150) {
1247 else if (m_unk0x1d6 > 4400) {
1257void Infocenter::PlayCutscene(Cutscene p_entityId,
MxBool p_scale)
1259 m_currentCutscene = p_entityId;
1278void Infocenter::StopCutscene()
1298void Infocenter::FUN_10070d10(
MxS32 p_x,
MxS32 p_y)
1301 for (i = 0; i < (
MxS32) (
sizeof(m_glowInfo) /
sizeof(m_glowInfo[0])); i++) {
1307 if (left <= p_x && p_x <= right && top <= p_y && p_y <= bottom) {
1316 if (i != m_unk0x1c8) {
1317 if (m_unk0x1c8 != -1) {
1330void Infocenter::UpdateFrameHot(
MxBool p_display)
1377void Infocenter::Reset()
1396 InitializeBitmaps();
1411 if (m_infocenterState !=
NULL) {
1418 else if (val == 13) {
1421 else if (val != 8) {
1439void Infocenter::StartCredits()
1444 MxCoreSet::iterator it =
m_set0xa8.begin();
1448 if (object->
IsA(
"MxPresenter")) {
1464 while (cursor.First(presenter)) {
1482 }
while (i < m_infocenterState->GetMaxNameLength());
1492void Infocenter::StopCredits()
1508 StopCurrentAction();
1510 m_currentInfomainScript = p_script;
1516void Infocenter::StopCurrentAction()
1529void Infocenter::PlayBookAnimation()
1538void Infocenter::StopBookAnimation()
[AI] Holds persistent state and status variables for Act 3 mission, saved between world reloads and p...
undefined4 GetUnknown0x08()
[AI] Getter for the (unknown) main status variable.
[AI] Game state entity specialized for tracking Helicopter-related state during gameplay.
MxBool Reset() override
[AI] Resets helicopter-specific state/progress tracking variable.
[AI] Represents the state of the Infocenter area, storing scripts, dialogue playlists and UI letter p...
Playlist m_leaveDialogue[3]
[AI] Playlists for leave dialogue, one per act (indices: 0=act1, 1=act2, 2=act3).
MxS16 GetMaxNameLength()
[AI] Returns the maximum number of letters in the UI registration name (always 7).
Playlist & GetExitDialogueAct23()
[AI] Returns the exit dialogue playlist for act 2 and 3.
Playlist m_exitDialogueAct1
[AI] Playlist of exit dialogue scripts for Act 1.
MxStillPresenter * m_letters[7]
[AI] UI presenters for each slot in the 7-letter name entry field (could be player's registered name)...
Playlist m_bricksterDialogue
[AI] Playlist for Brickster special dialogue events ("heckling").
Playlist & GetBricksterDialogue()
[AI] Returns the Brickster random interjection dialogue playlist.
Playlist m_returnDialogue[3]
[AI] Playlists for return dialogue, one per act (indices: 0=act1, 1=act2, 2=act3).
Playlist & GetExitDialogueAct1()
[AI] Returns the exit dialogue playlist for act 1.
InfomainScript::Script GetNextReturnDialogue()
[AI] Gets the next "return" dialogue script for the current act, looping within the act's playlist.
Playlist m_exitDialogueAct23
[AI] Playlist of exit dialogue scripts for Act 2/3.
InfomainScript::Script GetNextLeaveDialogue()
[AI] Gets the next "leave" dialogue script for the current act, looping within the act's playlist.
MxBool HasRegistered()
[AI] True if any letter slot is filled (indicating the player has registered).
~InfocenterState() override
[AI] Destroys the InfocenterState, cleaning up letter presenters and their associated actions.
MxStillPresenter * GetNameLetter(MxS32 p_index)
[AI] Returns the pointer to the UI presenter for a specific letter in the name field.
MxU32 m_unk0x74
[AI] State machine variable tracking the Infocenter flow (e.g., 0=intro, 3=NA, 4=goto book,...
InfocenterState()
[AI] Constructs the InfocenterState, initializing all dialogue playlists and clearing letter pointers...
[AI] Manages Infocenter world logic, UI, cutscenes, dialogue, and area transitions.
MxResult Tickle() override
[AI] Advances the Infocenter tick/update logic (timers, dialogue triggers, animation triggers,...
Infocenter()
[AI] Constructs Infocenter world, initializes state and registers for notifications.
MxResult Create(MxDSAction &p_dsAction) override
[AI] Creates the Infocenter world and performs all Infocenter-specific setup logic.
MxBool Escape() override
[AI] Handles Escape key (or similar) logic—exits cutscenes, cancels credits, or advances dialog state...
MxLong Notify(MxParam &p_param) override
[AI] Handles all notifications/events for Infocenter, routing them to specialized handlers.
MxBool VTable0x5c() override
[AI] Returns TRUE unconditionally.
void ReadyWorld() override
[AI] Loads initial Infocenter state and presents the background, name registration,...
@ e_legoMovie
[AI] The LEGO logo intro movie.
@ e_noIntro
[AI] Sentinel for no movie/cutscene running.
@ e_badEndMovie
[AI] Bad ending cutscene.
@ e_introMovie
[AI] Main introduction movie.
@ e_mindscapeMovie
[AI] The Mindscape logo intro movie.
@ e_goodEndMovie
[AI] Good ending cutscene.
@ e_pepper
[AI] Pepper Roni.
@ e_mama
[AI] Mama Brickolini.
@ e_noCharacter
[AI] No selection.
@ e_laura
[AI] Laura Brick.
@ e_papa
[AI] Papa Brickolini.
~Infocenter() override
[AI] Destroys Infocenter world, unregisters and cleans up all state and UI/presenters.
void Enable(MxBool p_enable) override
[AI] Enables or disables the Infocenter world, managing input and activity appropriately.
Represents the state object for Act 2 of the game.
undefined4 GetUnknown0x08()
Gets the value of the unknown member variable.
@ c_pepper
Pepper Roni ([AI])
void Reset(MxBool p_und)
[AI] Resets all internal state; optionally resets animation state too.
void FUN_10030590()
[AI] Resets all buildings' construction/demolition status to "unbuilt" (-1), updates heights/visibili...
void ReleaseAllActors()
[AI] Releases all actors associated with this manager, unregistering/releasing references until destr...
[AI] Notification parameter for the LegoControlManager, used to propagate information about control e...
MxS32 m_clickedObjectId
[AI] Object ID of the clicked control/presenter (or -1 if not set). [AI]
MxS16 m_unk0x28
[AI] Undetermined; settable via SetUnknown0x28. [AI]
void Register(MxCore *p_listener)
[AI] Adds a listener to be notified of control events.
MxControlPresenter * FUN_100294e0(MxS32 p_x, MxS32 p_y)
[AI] Finds the topmost control presenter at the given screen coordinates.
void Unregister(MxCore *p_listener)
[AI] Removes a listener so it no longer receives control events.
void FUN_100293c0(MxU32 p_objectId, const char *p_atom, MxS16 p_unk0x4e)
[AI] Dispatches a presenter event for the given object and atom parameters.
Notification parameter class for LEGO event notifications such as mouse events and modifier keys.
Comprehensive persistent game state manager: handles save/load, player selection, area switching,...
Act GetCurrentAct()
Returns the active act that is currently in play. [AI].
void SwitchArea(Area p_area)
Switches the whole game state into a new area/world; manages transitions/scene loads.
void SetPreviousArea(Area p_previousArea)
Sets the previous area for reload/stop logic.
void SetCurrentAct(Act p_currentAct)
Sets the current game act.
Area m_currentArea
Area/world the player is presently in. [AI].
Area m_unk0x42c
Used for act area storage on save/load. [AI].
void SetActorId(MxU8 p_actorId)
Directly sets the current actor ID (preferred: use SetActor).
LegoState * CreateState(const char *p_stateName)
Creates an instance of given state, registers it, and returns pointer.
@ e_act3
Act 3: final main story segment. [AI].
@ e_act1
Act 1: the first main segment of the game. [AI].
@ e_act2
Act 2: main story segment two. [AI].
void StopArea(Area p_area)
Calls cleanup logic for the specified area (removes actors, VMs, closes handles, etc....
MxU8 GetActorId()
Returns the current selected actor ID. [AI].
Area m_previousArea
Where player was before last area switch. [AI].
MxResult Save(MxULong p_slot)
Saves persistent game state (world variables, actor, etc.) to a file slot.
void FindLoadedAct()
Analyses the loaded Lego worlds to determine which act is present. [AI].
LegoState * GetState(const char *p_stateName)
Find an existing state (LegoState-derived) object by its registered script/class name.
@ e_infomain
Information Center, main screen. [AI].
@ e_previousArea
Alias: go to previous area. [AI].
@ e_elevdown
Elevator moving down (animated). [AI].
@ e_hospitalExterior
Hospital, seen from outside. [AI].
@ e_act3script
Act 3 world/script main. [AI].
@ e_act2main
Act 2 world main screen. [AI].
@ e_jetraceExterior
Jetski race transition? [AI].
@ e_elevride2
Elevator ride/cab down (animated). [AI].
@ e_garageExterior
Garage (vehicle construction) exterior. [AI].
@ e_regbook
Registration book "new game" area. [AI].
@ e_pizzeriaExterior
Pizzeria, seen from outside. [AI].
@ e_infoscor
Info Center hi-score area. [AI].
@ e_undefined
Undefined or unset area. [AI].
@ e_elevride
Elevator ride/cab up (animated). [AI].
@ e_elevbott
Elevator bottom. [AI].
@ e_observe
Observatory interior. [AI].
@ e_policeExterior
Police Station, from outside. [AI].
@ e_carraceExterior
Car race exterior/transition. [AI].
@ e_infodoor
Info Center door/title view. [AI].
@ e_seaview
Ocean-side view at observatory. [AI].
@ e_elevopen
Elevator doors open. [AI].
Area GetPreviousArea()
Gets the last area before the current one. [AI].
void SetActor(MxU8 p_actorId)
Change the player character in the world to the given actor ID.
void CloseMainWindow()
[AI] Posts a close (exit) message to the main window handle, triggering shutdown.
void RemoveWorld(const MxAtomId &p_atom, MxLong p_objectId)
[AI] Removes worlds by Atom and/or id, deleting matching entries from the world list and freeing reso...
@ c_clearScreen
[AI] When set, clears the display surface. [AI]
@ c_disable3d
[AI] When set, disables 3D rendering. [AI]
@ c_disableInput
[AI] When set, disables input processing. [AI]
void FUN_10027120()
[AI] Resets all growth/activity/animation state for all plants in the manager.
void EnableFullScreenMovie(MxBool p_enable)
[AI] Convenience method to enable or disable fullscreen movie playback with default scaling.
void FUN_1007c520()
[AI] Sets rendering state to allow PutData for all overlay presenters, disables 3D main rendering.
virtual void Enable(MxBool p_enable)
Enables or disables (pauses) the world and its main components.
MxResult Tickle() override
Main world tick/update, especially manages startup countdown.
MxCoreSet m_set0xa8
Set of 'auxiliary' objects, including presenters, that aren't core entity or animation,...
MxBool m_worldStarted
Indicates if the world has successfully started and is considered active.
MxCore * Find(const char *p_class, const char *p_name)
Finds an object of a given class and name in the world.
MxLong Notify(MxParam &p_param) override
Notification callback responding to registered events such as EndAction and NewPresenter.
MxResult Create(MxDSAction &p_dsAction) override
Initializes the world using an action, creating entity and sound lists, and camera controller.
MxPresenterList m_controlPresenters
List of control presenters (UI, input, cutscene control, etc.).
MxDSAction * GetAction()
[AI] Direct access to the underlying action.
const char * GetInternal() const
[AI] Returns a pointer to the internal string, or nullptr if not set.
void RaiseVolume()
[AI] Requests that the background music volume is raised (decrements suppression counter); triggers f...
void LowerVolume()
[AI] Requests a reduction in current background music volume, queuing for fade out (increments suppre...
void Stop()
[AI] Immediately stops all background music, clears all actions and presenters, and resets tickle sta...
[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.
virtual MxBool IsA(const char *p_name) const
[AI] Checks whether this object's class type or parents match the given name.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
@ c_world
[AI] Action is described in world-space coordinates [AI]
const MxAtomId & GetAtomId()
[AI] Returns a const-reference to the object's atom identifier.
virtual void SetAtomId(MxAtomId p_atomId)
[AI] Sets the atom id for this object instance, used for indexing or lookup.
void SetUnknown24(MxS16 p_unk0x24)
[AI] Sets the unknown field at 0x24 (possibly version/state).
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
void ClearScreen()
[AI] Fills the current back buffer with black (clears the display area). [AI]
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
MxEntity is a base class for game entities which are uniquely identified by an integer ID and an Atom...
MxS32 GetEntityId()
Returns the current entity ID.
MxAtomId m_atomId
The AtomId associated with this entity, used for resource and script identification.
MxBool IsA(const char *p_name) const override
Checks if the object is of the given class name or a parent type.
void Unregister(MxCore *p_listener)
[AI] Removes a previously registered listener and flushes any pending notifications for it.
void Register(MxCore *p_listener)
[AI] Registers a listener object to receive notifications.
[AI] Parameter object representing a single notification or event, carrying an identifier and sender ...
NotificationId GetNotification() const
[AI] Retrieves the current notification type of this parameter.
MxCore * GetSender() const
[AI] Retrieves the sender pointer associated with this notification.
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
[AI] Cursor/iterator for traversing an MxPresenterList.
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
virtual void SetTickleState(TickleState p_tickleState)
[AI] Forces the tickle state, advancing to the requested lifecycle stage.
virtual void EndAction()
[AI] Terminates the current action, notifies listeners and resets state.
MxBool IsEnabled()
[AI] Returns whether this presenter is logically enabled (based on the associated action's flags).
void SetDisplayZ(MxS32 p_displayZ)
[AI] Sets the display Z (depth) order for the presenter.
MxS32 GetDisplayZ() const
[AI] Returns the display Z (depth) order.
@ e_repeating
[AI] Presentation is repeating (e.g., looping media).
MxDSAction * GetAction() const
[AI] Returns the current action being presented.
[AI] 2D rectangle class templated on its value type.
T GetTop() const
[AI] Get the top edge.
T GetRight() const
[AI] Get the right edge.
T GetLeft() const
[AI] Get the left edge.
T GetBottom() const
[AI] Get the bottom edge.
[AI] Presenter for single still image/bitmap media sources in the game.
virtual void SetPosition(MxS32 p_x, MxS32 p_y)
[AI] Sets the pixel-based position of the presented image.
void Enable(MxBool p_enable) override
[AI] Sets the enabled/disabled state of the presenter, updating the video manager's rendering as need...
virtual void UnregisterClient(MxCore *p_client)
[AI] Unregisters (marks for destruction) a previously registered client.
MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_doCopy, MxBool p_playMusicInAnim)
[AI] Begins a new transition animation of type p_animationType at the specified speed,...
@ e_mosaic
[AI] Complex mosaic block-out effect.
void SortPresenterList()
[AI] Sorts presenters in descending Z order for proper overdraw order during tickle (bubble-sort).
MxDisplaySurface * GetDisplaySurface()
[AI] Returns the display surface used for video output; for direct drawing and palette operations.
MxBool IsActive()
[AI] Indicates whether the radio is currently playing.
void Stop()
[AI] Stops radio playback if currently active and updates audio state.
MxLong Notify(MxParam &p_param) override
[AI] Handles system notifications (end actions, control events) relevant to the radio.
void Initialize(MxBool p_und)
[AI] Sets radio system as enabled/disabled and resets state if changed.
RadioState * GetState()
[AI] Returns the current RadioState for this radio.
void RemoveAll(ViewROI *p_roi)
[AI] Recursively removes all ViewROI objects.
#define DECOMP_SIZE_ASSERT(T, S)
const char * g_object2x4red
InfomainScript::Script g_exitDialogueAct23[6]
InfomainScript::Script g_returnDialogueAct3[4]
InfomainScript::Script g_returnDialogueAct2[4]
InfomainScript::Script g_leaveDialogueAct1[4]
InfomainScript::Script g_returnDialogueAct1[6]
InfomainScript::Script g_bricksterDialogue[2]
InfomainScript::Script g_leaveDialogueAct2[4]
InfomainScript::Script g_leaveDialogueAct3[4]
const char * g_object2x4grn
InfomainScript::Script g_exitDialogueAct1[14]
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
void InvokeAction(Extra::ActionType p_actionId, const MxAtomId &p_pAtom, MxS32 p_streamId, LegoEntity *p_sender)
[AI] Dispatches and triggers a game action on the given script or object.
void SetAppCursor(Cursor p_cursor)
[AI] Sets the in-game cursor to a specified type.
@ e_cursorBusy
[AI] Busy or loading cursor (e.g., hourglass). [AI]
@ e_cursorNone
[AI] No cursor (invisible or hidden). [AI]
@ e_cursorArrow
[AI] Standard arrow cursor. [AI]
LegoGameState * GameState()
[AI] Accessor for the game's central game state controller. [AI]
LegoVideoManager * VideoManager()
[AI] Accessor for the game's LegoVideoManager subsystem. Used for managing 3D/video hardware....
LegoCharacterManager * CharacterManager()
[AI] Accessor for the character manager, which manages in-game characters/NPCs. [AI]
LegoAnimationManager * AnimationManager()
[AI] Accessor for the animation manager, which controls Lego character/world animation state....
LegoBuildingManager * BuildingManager()
[AI] Accessor for the building manager, handles constructible buildings and structures....
MxTransitionManager * TransitionManager()
[AI] Accessor for the MxTransitionManager, handling level transitions, fades, and world changes....
MxBackgroundAudioManager * BackgroundAudioManager()
[AI] Accessor for the background audio manager. Used for background music and ambient sounds....
ViewManager * GetViewManager()
[AI] Accessor for the current ViewManager, managing rendering views/cameras. [AI]
LegoPlantManager * PlantManager()
[AI] Accessor for the plant manager, handling in-game foliage and plants. [AI]
LegoControlManager * ControlManager()
[AI] Accessor for the control manager through the input manager; manages higher-level user/game contr...
void FUN_10015820(MxBool p_disable, MxU16 p_flags)
[AI] Utility for enabling or disabling functionality in LegoOmni based on certain flags.
void SetROIVisible(const char *p_name, MxBool p_visible)
[AI] Utility for setting the visibility flag of a named ROI object.
void PlayMusic(JukeboxScript::Script p_objectId)
[AI] Starts music playback by scripting the background audio manager to play the music piece referenc...
LegoOmni * Lego()
[AI] Retrieves the global LegoOmni singleton instance, providing access to core subsystems.
void SetIsWorldActive(MxBool p_isWorldActive)
[AI] Toggles whether the world should be considered active (enables/disables camera/user control etc)...
LegoInputManager * InputManager()
[AI] Accessor for the input manager, which handles keyboard, mouse, and controller input....
MxResult Start(MxDSAction *p_dsAction)
[AI] Schedules and initiates execution of a script action.
void DeleteObject(MxDSAction &p_dsAction)
[AI] Deletes the specified action object, removing it from the global action list.
MxNotificationManager * NotificationManager()
[AI] Returns the notification manager for system-wide state/update notifications.
MxTickleManager * TickleManager()
[AI] Provides access to the global tickle manager.
@ c_notificationControl
[AI] UI control event [AI]
@ c_notificationButtonUp
[AI] Mouse/gamepad button release [AI]
@ c_notificationMouseMove
[AI] Mouse movement event [AI]
@ c_notificationKeyPress
[AI] Keyboard key press detected [AI]
@ c_notificationTransitioned
[AI] Object has transitioned states or locations [AI]
@ c_notificationType0
[AI] Undefined/Generic notification type [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
void FUN_100b7220(MxDSAction *p_action, MxU32 p_newFlags, MxBool p_setFlags)
Recursively sets or clears flags for an MxDSAction and all sub-actions if applicable.
@ c_LegoCredits
[AI] Identifier for the main script or starting action for LEGO credits sequence.
@ c_Cop_Ctl
[AI] UI/button logic for "Police" (Cop) menu/scene elements. [AI]
@ c_Laura_Ctl
[AI] Script/control logic for "Laura". [AI]
@ c_Book_Ctl
[AI] Script/control for the book icon/button in InfoMain. [AI]
@ c_Info_Ctl
[AI] Script/control for the main Info ("I") button logic. [AI]
@ c_BigInfo_Ctl
[AI] UI/button logic for the large Info button ("Big I") in InfoMain. [AI]
@ c_Pepper_All_Movie
[AI] Full-sequence animation/movie for Pepper character. [AI]
@ c_Mama_All_Movie
[AI] Full-sequence animation/movie for Mama character. [AI]
@ c_GoTo_RegBook_Red
[AI] Script/action to transition to red registration book scene. [AI]
@ c_Radio_Ctl
[AI] Script/control for radio UI/button or logic. [AI]
@ c_LauraHot_Bitmap
[AI] Hot/clickable bitmap for "Laura" character. [AI]
@ c_RightArrow_Ctl
[AI] Script/control for the right arrow UI element, handles navigation within InfoMain....
@ c_Med_Ctl
[AI] UI/button logic for "Medical" (hospital) menu/scene elements. [AI]
@ c_Papa_All_Movie
[AI] Full-sequence animation/movie for Papa character. [AI]
@ c_Gas_Ctl
[AI] UI/button logic for "Gas" menu/scene elements. [AI]
@ c_PapaHot_Bitmap
[AI] Hot/clickable bitmap for "Papa" character. [AI]
@ c_Nick_Ctl
[AI] Script/control logic for "Nick". [AI]
@ c_Nick_All_Movie
[AI] Full-sequence animation/movie for Nick character. [AI]
@ c_Papa_Ctl
[AI] Script/control logic for "Papa" Brick character. [AI]
@ c_PepperHot_Bitmap
[AI] Hot/clickable bitmap for "Pepper" character. [AI]
@ c_NickHot_Bitmap
[AI] Hot/clickable bitmap for "Nick" character. [AI]
@ c_noneInfomain
[AI] Indicates that no specific script/action/resource is assigned or selected. Used as an invalid/no...
@ c_Mama_Ctl
[AI] Script/control logic for "Mama" Brick character. [AI]
@ c_LeftArrow_Ctl
[AI] Script/control for the left arrow UI element, handles navigation within InfoMain....
@ c_Pizza_Ctl
[AI] UI/button logic for "Pizza" menu/scene elements. [AI]
@ c_GoTo_RegBook
[AI] Script/action to transition to green registration book scene. [AI]
@ c_iic001in_RunAnim
[AI] Begin running animation for IIC001IN sequence. [AI]
@ c_Laura_All_Movie
[AI] Full-sequence animation/movie for Laura character. [AI]
@ c_Door_Ctl
[AI] Control script for door UI element, likely used for exiting InfoMain or other scene changes....
@ c_Race_Ctl
[AI] UI/button logic for "Race" menu/scene elements. [AI]
@ c_MamaHot_Bitmap
[AI] Hot/clickable bitmap for "Mama" character. Used for mouseover or click visuals....
@ c_Pepper_Ctl
[AI] Script/control logic for "Pepper" character. [AI]
@ c_Boat_Ctl
[AI] UI/button logic for "Boat" menu/scene elements. [AI]
@ c_InformationCenter_Music
[AI] Background music for the information center.
@ c_BookWig_Flic
[AI] BookWig special FLIC animation trigger. [AI]
[AI] Contains global script AtomId pointers and utility functions for managing script AtomIds in LEGO...
MxAtomId * g_creditsScript
[AI] Script AtomId for the credits roll logic.
MxAtomId * g_act3Script
[AI] Script AtomId for Act 3 (endgame/helicopter chase) scripting.
MxAtomId * g_introScript
[AI] Script AtomId for the game introduction script.
MxAtomId * g_infomainScript
[AI] Script AtomId for the main Info Center world/event script.
MxAtomId * g_sndAnimScript
[AI] Script AtomId for sound animation or related cutscenes.
MxAtomId * g_act2mainScript
[AI] Script AtomId for main script of Act 2 (island event progression).
[AI] Maps a UI region in the Infocenter to a destination presenter for glow effects.
undefined4 m_unk0x04
[AI] Action/group/area identifier; used for routing (e.g., 3=main, 10=boat, ...).
InfocenterMapEntry()
[AI] Default constructor, does not initialize members.
MxStillPresenter * m_destCtl
[AI] The bitmap/still presenter to enable/disable when the region is active.
MxRect< MxS32 > m_area
[AI] The rectangular screen area for this map entry.
[AI] Playlist structure representing an indexed list of object IDs with next-item selection strategie...
MxU32 Next()
[AI] Retrieves the object ID at the current position, advances next index according to playlist mode.