59 m_policeState = policeState;
[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.
void Unregister(MxCore *p_listener)
[AI] Removes a listener so it no longer receives control events.
Notification parameter class for LEGO event notifications such as mouse events and modifier keys.
MxU8 GetKey() const
Returns the keycode for this event, or 0 if not used.
Comprehensive persistent game state manager: handles save/load, player selection, area switching,...
void SwitchArea(Area p_area)
Switches the whole game state into a new area/world; manages transitions/scene loads.
Area m_currentArea
Area/world the player is presently in. [AI].
LegoState * CreateState(const char *p_stateName)
Creates an instance of given state, registers it, and returns pointer.
void StopArea(Area p_area)
Calls cleanup logic for the specified area (removes actors, VMs, closes handles, etc....
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_police
Police Station interior. [AI].
@ e_copterbuild
Vehicle construction: helicopter. [AI].
@ e_polidoor
Police Station door. [AI].
@ e_undefined
Undefined or unset area. [AI].
@ 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]
virtual MxResult Serialize(LegoStorage *p_storage)
[AI] Serialize state to a storage (for save/load).
Abstract base class providing an interface for file-like storage with binary and text read/write oper...
LegoStorage * ReadS32(MxS32 &p_data)
Reads a 32-bit signed value from storage.
virtual LegoBool IsReadMode()
Returns TRUE if object was opened in read mode.
LegoStorage * WriteS32(MxS32 p_data)
Writes a 32-bit signed value to storage.
virtual void ReadyWorld()
Called when the world is ready to be used—typically for custom scene setup after startup.
virtual void Enable(MxBool p_enable)
Enables or disables (pauses) the world and its main components.
MxBool m_worldStarted
Indicates if the world has successfully started and is considered active.
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.
MxDSAction * GetAction()
[AI] Direct access to the underlying action.
void Stop()
[AI] Immediately stops all background music, clears all actions and presenters, and resets tickle sta...
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
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 SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
MxAtomId m_atomId
The AtomId associated with this entity, used for resource and script identification.
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.
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
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.
[AI] Represents the state information specific to the Police area of the game.
void SetUnknown0x0c(undefined4 p_unk0x0c)
[AI] Set the value of the internal state variable at offset 0x0c.
void FUN_1005ea40()
[AI] Trigger the "donut" animation event.
PoliceState()
[AI] Constructs a new PoliceState. Initializes script and internal state. [AI]
MxResult Serialize(LegoStorage *p_storage) override
[AI] Serialize the PoliceState to or from the provided storage.
undefined4 GetUnknown0x0c()
[AI] Returns the value of the internal state variable at offset 0x0c.
PoliceScript::Script m_policeScript
[AI] The currently active animation/script for the Police state (e.g. which minifig or animation runs...
undefined4 m_unk0x0c
[AI] Internal flag to indicate whether the donut animation has started (1), finished (0),...
[AI] Main world object for the Police Station area in LEGO Island.
void Enable(MxBool p_enable) override
[AI] Enables or disables the Police world for input and activity.
~Police() override
[AI] Destructor: deregisters world from managers and clears input/world pointers. [AI]
MxBool Escape() override
[AI] Handles user request to exit the Police area (e.g., Escape key).
MxResult Create(MxDSAction &p_dsAction) override
[AI] Handles world creation, input setup, and PoliceState initialization.
MxLong Notify(MxParam &p_param) override
[AI] Handle incoming notifications (key presses, controls, end actions, transitions).
void ReadyWorld() override
[AI] Prepares the Police world for activation, setting music and disabling user input/3d as needed....
MxLong Notify(MxParam &p_param) override
[AI] Handles system notifications (end actions, control events) relevant to the radio.
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
LegoGameState * GameState()
[AI] Accessor for the game's central game state controller. [AI]
void DeleteObjects(MxAtomId *p_id, MxS32 p_first, MxS32 p_last)
[AI] Batch deletes objects, given by atom id, and within the entity id range [p_first,...
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....
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 PlayMusic(JukeboxScript::Script p_objectId)
[AI] Starts music playback by scripting the background audio manager to play the music piece referenc...
LegoPathActor * UserActor()
[AI] Accessor for the user (player-controllable) LegoPathActor. [AI]
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.
MxNotificationManager * NotificationManager()
[AI] Returns the notification manager for system-wide state/update notifications.
@ c_notificationControl
[AI] UI control event [AI]
@ c_notificationKeyPress
[AI] Keyboard key press detected [AI]
@ c_notificationTransitioned
[AI] Object has transitioned states or locations [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
@ c_PoliceStation_Music
[AI] Music played inside or near the police station.
[AI] Contains global script AtomId pointers and utility functions for managing script AtomIds in LEGO...
MxAtomId * g_policeScript
[AI] Script AtomId for the police station script logic.