116 if (!m_audioEnabled) {
194 if (m_unk0x0c != p_und) {
216 srand(
Timer()->GetTime());
218 MxS32 random = rand();
250 for (
MxS16 i = 0; i < 3; i++) {
[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]
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.
Comprehensive persistent game state manager: handles save/load, player selection, area switching,...
LegoState * CreateState(const char *p_stateName)
Creates an instance of given state, registers it, and returns pointer.
LegoState * GetState(const char *p_stateName)
Find an existing state (LegoState-derived) object by its registered script/class name.
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
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.
MxDSAction * GetAction()
[AI] Direct access to the underlying action.
[AI] Atomized (unique) string identifier, managed by reference counting.
void Enable(MxBool p_enable)
[AI] Enables or disables the background audio manager.
MxBool GetEnabled()
[AI] Returns whether background audio management is currently enabled.
MxResult PlayMusic(MxDSAction &p_action, undefined4 p_speed, MxPresenter::TickleState p_tickleState)
[AI] Initiates playback of a new background music action with specified speed and target tickle state...
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...
virtual void VTable0x6c(MxS16 p_unk0x4e)
[AI] Selects a state/sub-control by index, or advances the currently selected state if -1 is provided...
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
void SetLoopCount(MxS32 p_loopCount)
[AI] Sets the loop count for this action.
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).
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
MxAtomId & GetAtomId()
Returns a reference to the entity AtomId.
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...
@ e_repeating
[AI] Presentation is repeating (e.g., looping media).
[AI] Handles and stores state for the in-game radio, including track playlists, cycling,...
MxBool FUN_1002d0c0(const MxAtomId &p_atom, MxU32 p_objectId)
[AI] Checks if the given atom/object ID matches one of the radio's playlists.
undefined4 FUN_1002d090()
[AI] Cycles to the next playlist and returns the next object ID to play.
MxS16 m_unk0x2c
[AI] Index for cycling among the three playlists (0-2).
MxBool m_active
[AI] If TRUE, the radio is playing; FALSE otherwise.
MxBool IsActive()
[AI] Indicates whether the radio is currently playing.
Playlist m_unk0x08[3]
[AI] Radio playlists. Each is a collection of track IDs used by the radio (effects,...
RadioState()
[AI] Constructs a new RadioState, randomizing playlist indices and initial state.
void SetActive(MxBool p_active)
[AI] Sets active status of the radio.
[AI] High-level manager for the in-game radio, handling notifications, playing/stopping,...
void Play()
[AI] Starts playing radio music if it is not already active.
void Stop()
[AI] Stops radio playback if currently active and updates audio state.
~Radio() override
[AI] Destructor; shuts down radio playback and unregisters events.
MxLong Notify(MxParam &p_param) override
[AI] Handles system notifications (end actions, control events) relevant to the radio.
void CreateState()
[AI] Creates or retrieves a RadioState object in the game state manager.
Radio()
[AI] Constructs a new Radio, registering for notifications and control events.
void Initialize(MxBool p_und)
[AI] Sets radio system as enabled/disabled and resets state if changed.
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).
LegoGameState * GameState()
[AI] Accessor for the game's central game state controller. [AI]
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...
LegoWorld * CurrentWorld()
[AI] Accessor for the currently active LegoWorld instance. [AI]
MxTimer * Timer()
[AI] Returns the global simulation timer.
MxNotificationManager * NotificationManager()
[AI] Returns the notification manager for system-wide state/update notifications.
@ c_notificationControl
[AI] UI control event [AI]
@ c_notificationType0
[AI] Undefined/Generic notification type [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
@ c_sns009ra_Audio
[AI] Asset-coded audio/event track.
@ c_ham035ra_Audio
[AI] Asset-coded audio/event track.
@ c_sns008ra_Audio
[AI] Asset-coded audio/event track.
@ c_sns005ra_Audio
[AI] Asset-coded audio/event track.
@ c_BeachBlvd_Music
[AI] Music for Beach Boulevard.
@ c_ham036ra_Audio
[AI] Asset-coded audio/event track.
@ c_snsa01js_Audio
[AI] Asset-coded audio/event track.
@ c_Radio4_Music
[AI] Fourth radio track.
@ c_Radio1_Music
[AI] First of several radio tracks available via the radio.
@ c_sns003ra_Audio
[AI] Asset-coded audio/event track.
@ c_snsc01js_Audio
[AI] Special area/event audio track, asset code derived.
@ c_ResidentalArea_Music
[AI] Music for the residential area environment.
@ c_sns079pa_Audio
[AI] Asset-coded audio/event track.
@ c_sns078pa_Audio
[AI] Asset-coded audio/event track.
@ c_Radio3_Music
[AI] Third radio track.
@ c_sns007ra_Audio
[AI] Asset-coded audio/event track.
@ c_sns002ra_Audio
[AI] Specific alternate background/ambience used in an area or event. (Name based on asset codes....
@ c_Radio2_Music
[AI] Second radio track.
@ c_sns001ja_Audio
[AI] Special music/ambience, asset code derived.
@ c_sns006ra_Audio
[AI] Asset-coded audio/event track.
@ c_snsb01js_Audio
[AI] Asset-coded audio/event track.
@ c_sns010ra_Audio
[AI] Asset-coded audio/event track.
@ c_ham039ra_Audio
[AI] Asset-coded audio/event track.
@ c_sns004ra_Audio
[AI] Asset-coded audio/event track.
@ c_hpz037ma_Audio
[AI] Asset-coded audio/event track.
@ c_Radio5_Music
[AI] Fifth radio track.
@ c_CentralRoads_Music
[AI] Background music for LEGO Island central roads.
@ c_Radio6_Music
[AI] Sixth radio track.
@ c_sns013ra_Audio
[AI] Asset-coded audio/event track.
JukeboxScript::Script g_unk0x100f3268[]
JukeboxScript::Script g_unk0x100f3230[]
JukeboxScript::Script g_unk0x100f3218[]
[AI] Contains global script AtomId pointers and utility functions for managing script AtomIds in LEGO...
MxAtomId * g_jukeboxScript
[AI] Script AtomId for the Jukebox entity/event script.
[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.
MxS16 m_nextIndex
[AI] Current index for next selection (suitable for sequential/random access). [AI]