Isle
Loading...
Searching...
No Matches
legocontrolmanager.h
Go to the documentation of this file.
1#ifndef LEGOCONTROLMANAGER_H
2#define LEGOCONTROLMANAGER_H
3
5#include "legoinputmanager.h"
6#include "mxcore.h"
7#include "mxpresenterlist.h"
8
10
16public:
22 {
25 }
26
31 const char* GetClickedAtom() const { return m_clickedAtom; }
32
37 void SetClickedObjectId(MxS32 p_clickedObjectId) { m_clickedObjectId = p_clickedObjectId; }
38
43 void SetClickedAtom(const char* p_clickedAtom) { m_clickedAtom = p_clickedAtom; }
44
50 void SetUnknown0x28(MxS16 p_unk0x28) { m_unk0x28 = p_unk0x28; }
51
53 const char* m_clickedAtom;
55};
56
57// SYNTHETIC: LEGO1 0x10028bf0
58// LegoControlManagerNotificationParam::`scalar deleting destructor'
59
60// SYNTHETIC: LEGO1 0x10028c60
61// LegoControlManagerNotificationParam::~LegoControlManagerNotificationParam
62
67class LegoControlManager : public MxCore {
68public:
73
77 ~LegoControlManager() override;
78
84 MxResult Tickle() override;
85
90 static const char* HandlerClassName()
91 {
92 // STRING: LEGO1 0x100f31b8
93 return "LegoControlManager";
94 }
95
100 const char* ClassName() const override;
101
107 MxBool IsA(const char* p_name) const override;
108
114 void FUN_10028df0(MxPresenterList* p_presenterList);
115
120 void Register(MxCore* p_listener);
121
126 void Unregister(MxCore* p_listener);
127
136
144 void FUN_100293c0(MxU32 p_objectId, const char* p_atom, MxS16 p_unk0x4e);
145
153
160
167
172 void FUN_100292e0();
173
179 undefined4 GetUnknown0x0c() { return m_unk0x0c; }
180
186 undefined GetUnknown0x10() { return m_unk0x10; }
187
188 // SYNTHETIC: LEGO1 0x10028d40
189 // LegoControlManager::`scalar deleting destructor'
190
191private:
192 undefined4 m_unk0x08;
193 undefined4 m_unk0x0c;
194 MxBool m_unk0x10;
195 MxPresenter* m_unk0x14;
197 MxPresenterList* m_presenterList;
198 LegoNotifyList m_notifyList;
199};
200
201#endif // LEGOCONTROLMANAGER_H
[AI] Notification parameter for the LegoControlManager, used to propagate information about control e...
void SetClickedObjectId(MxS32 p_clickedObjectId)
[AI] Sets the object ID of the clicked control/presenter.
void SetUnknown0x28(MxS16 p_unk0x28)
[AI] Sets the value of the unknown field at offset 0x28.
const char * m_clickedAtom
[AI] Atom string for the clicked control (unique string identifier; may be NULL). [AI]
void SetClickedAtom(const char *p_clickedAtom)
[AI] Sets the atom string that identifies the clicked control.
LegoControlManagerNotificationParam()
[AI] Default constructor initializing members to their default invalid states.
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]
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.
MxBool IsA(const char *p_name) const override
[AI] Checks if this class or one of its ancestors matches the given name.
const char * ClassName() const override
[AI] Returns the class name for this object.
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()
[AI] Constructs a LegoControlManager instance and registers it for tickle updates with the global tic...
undefined4 GetUnknown0x0c()
[AI] Gets the internal flag at offset 0x0c.
~LegoControlManager() override
[AI] Destructor; unregisters this manager from tickle management.
undefined GetUnknown0x10()
[AI] Gets the internal flag at offset 0x10.
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.
static const char * HandlerClassName()
[AI] Returns the class name identifier for this handler.
Notification parameter class for LEGO event notifications such as mouse events and modifier keys.
[AI] A list of notification targets (MxCore*) interested in input events (primarily keyboard).
[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
[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 ...
Definition: mxpresenter.h:20
unsigned int undefined4
Definition: decomp.h:28
unsigned char undefined
Definition: decomp.h:26
#define NULL
[AI] Null pointer value (C/C++ semantics).
Definition: legotypes.h:26
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
signed short MxS16
[AI]
Definition: mxtypes.h:26
signed int MxS32
[AI]
Definition: mxtypes.h:38
unsigned int MxU32
[AI]
Definition: mxtypes.h:32