19 m_presenterList =
NULL;
36 m_presenterList = p_presenterList;
45 m_notifyList.
Append(p_listener);
53 if (cursor.
Find(p_listener)) {
62 m_unk0x14 = p_presenter;
74 if (m_unk0x10 ==
TRUE) {
117 while (cursor.
Current(target)) {
126 if (m_presenterList) {
130 while (cursor.
Next(control)) {
150 if (m_presenterList) {
156 while (cursor.
Next(control)) {
170 if (m_unk0x08 == 2 && m_unk0x0c == 1) {
175 else if (m_unk0x08 == 1) {
187 while (cursor.
Next(presenter)) {
206 while (cursor.
Next(presenter)) {
[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]
const char * GetClickedAtom() const
[AI] Returns the atom string associated with the control event.
[AI] Manages control presenters and dispatches notifications for control/input events within the LEGO...
MxBool FUN_10029750()
[AI] Handles "button up" click resolution logic for the UI system.
MxBool FUN_10029630()
[AI] Handles "button down" logic for the input system over presenters.
void FUN_10028df0(MxPresenterList *p_presenterList)
[AI] Assigns the active presenter list to this control manager.
void FUN_100292e0()
[AI] Notifies all registered listeners with the current control event.
void Register(MxCore *p_listener)
[AI] Adds a listener to be notified of control events.
MxResult Tickle() override
[AI] Performs periodic processing on the control manager, advancing internal event state and dispatch...
MxControlPresenter * FUN_100294e0(MxS32 p_x, MxS32 p_y)
[AI] Finds the topmost control presenter at the given screen coordinates.
~LegoControlManager() override
[AI] Destructor; unregisters this manager from tickle management.
MxBool FUN_10029210(LegoEventNotificationParam &p_param, MxPresenter *p_presenter)
[AI] Handles event notification logic, taking an event and possibly updating the manager/presenter st...
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.
MxS32 GetY() const
Returns Y (vertical) coordinate for the event, usually screen-relative in pixels.
void SetX(MxS32 p_x)
Sets the X (horizontal) coordinate for the event.
MxU8 GetModifier()
Returns modifier bitmask for this event (mouse/keyboard state).
void SetKey(MxU8 p_key)
Sets the keycode for the event.
void SetY(MxS32 p_y)
Sets the Y (vertical) coordinate for the event.
MxU8 GetKey() const
Returns the keycode for this event, or 0 if not used.
MxS32 GetX() const
Returns X (horizontal) coordinate for the event, usually screen-relative in pixels.
void SetModifier(MxU8 p_modifier)
Sets the modifier state bitmask for the event.
[AI] Cursor (iterator) for traversing a LegoNotifyList. Used to find or detach notification targets....
virtual MxPresenter * GetPresenterAt(MxS32 p_x, MxS32 p_y)
[AI] Finds a presenter at the specific screen coordinates (for hit testing).
const char * GetInternal() const
[AI] Returns a pointer to the internal string, or nullptr if not set.
[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 MxLong Notify(MxParam &p_param)
[AI] Virtual callback notification mechanism.
[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.
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
MxBool Current(T &p_obj)
[AI]
MxU32 GetNumElements()
[AI]
NotificationId GetNotification() const
[AI] Retrieves the current notification type of this parameter.
MxCore * GetSender() const
[AI] Retrieves the sender pointer associated with this notification.
void SetSender(MxCore *p_sender)
[AI] Sets the sender pointer for this notification parameter.
void SetNotification(NotificationId p_type)
[AI] Sets the notification type for this parameter object.
[AI] Cursor/iterator for traversing an MxPresenterList.
[AI] List to hold pointers to MxPresenter objects with optional ownership semantics.
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
MxDSAction * GetAction() const
[AI] Returns the current action being presented.
virtual void UnregisterClient(MxCore *p_client)
[AI] Unregisters (marks for destruction) a previously registered client.
virtual void RegisterClient(MxCore *p_client, MxTime p_interval)
[AI] Registers an MxCore object to receive periodic tickles.
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).
LegoVideoManager * VideoManager()
[AI] Accessor for the game's LegoVideoManager subsystem. Used for managing 3D/video hardware....
MxTickleManager * TickleManager()
[AI] Provides access to the global tickle manager.
@ c_notificationButtonUp
[AI] Mouse/gamepad button release [AI]
@ c_notificationButtonDown
[AI] Mouse/gamepad button press [AI]