32 MxPoint32 rect1Origin(*p_rect1Left, *p_rect1Top);
35 MxPoint32 rect2Origin(*p_rect2Left, *p_rect2Top);
38 MxRect32 rect(0, 0, *p_width, *p_height);
57 *p_rect1Top += rect.
GetTop();
59 *p_rect2Top += rect.
GetTop();
68 const char* cln = strchr(p_input,
':');
73 strcpy(p_output, p_input);
77 char* extLoc = strstr(p_output,
".si");
91 MxS16 len = strlen(p_string);
92 char*
string =
new char[len + 1];
94 strcpy(
string, p_string);
96 const char* delim =
", \t\r\n:";
97 for (
char* token = strtok(
string, delim); token; token = strtok(
NULL, delim)) {
98 len -= (strlen(token) + 1);
100 if (strcmpi(token, p_command) == 0) {
101 if (p_output && len > 0) {
102 char* output = p_output;
103 char* cur = &token[strlen(p_command)];
105 while (*cur !=
',' && *cur !=
' ' && *cur !=
'\0' && *cur !=
'\t' && *cur !=
'\n' && *cur !=
'\r') {
124 for (MxCompositePresenterList::iterator it = p_presenterList.begin(); it != p_presenterList.end(); it++) {
125 if (p_presenter == *it || ((*it)->IsA(
"MxCompositePresenter") &&
159 newFlags = oldFlags | p_newFlags;
162 newFlags = oldFlags & ~p_newFlags;
167 if (p_action->
IsA(
"MxDSMultiAction")) {
171 while (cursor.
Next(action)) {
[AI] STL list of MxPresenter pointers, used to manage multiple child presenters under composite contr...
[AI] Composite presenter that manages a collection of child presenters, orchestrating their actions a...
[AI] Convenience cursor class for iterating over an MxDSActionList.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
MxU32 GetFlags()
[AI] Returns the flag field for this action (bitmask).
MxBool IsA(const char *p_name) const override
[AI] Run-time type check, compares provided name with this or any ancestor type.
void SetFlags(MxU32 p_flags)
[AI] Sets the flag bitmask controlling action logic (enabled, looping, etc).
[AI] Represents a container for multiple MxDSAction objects, facilitating the grouping and management...
[AI] 2D point with 32-bit signed integer coordinates.
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
[AI] Rectangle using 32-bit signed integer coordinates.
T GetTop() const
[AI] Get the top edge.
MxBool Intersects(const MxRect &p_r) const
[AI] Returns whether this rectangle intersects another.
T GetWidth() const
[AI] Get the rectangle's width.
T GetHeight() const
[AI] Get the rectangle's height.
T GetLeft() const
[AI] Get the left edge.
[AI] Size with 32-bit signed integer width and height.
#define NULL
[AI] Null pointer value (C/C++ semantics).
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.
void MakeSourceName(char *p_output, const char *p_input)
Parses an SI source filename and normalizes it for use in the engine.
MxBool KeyValueStringParse(char *p_output, const char *p_command, const char *p_string)
Searches p_string for a key command and copies its associated value to p_output.
void(* g_omniUserMessage)(const char *, MxS32)
MxBool ContainsPresenter(MxCompositePresenterList &p_presenterList, MxPresenter *p_presenter)
Determines if a presenter exists within a composite presenter hierarchy.
void SetOmniUserMessage(void(*p_omniUserMessage)(const char *, MxS32))
Sets the callback to handle user messages, such as errors or logs, for the OMNI engine.
MxBool GetRectIntersection(MxS32 p_rect1Width, MxS32 p_rect1Height, MxS32 p_rect2Width, MxS32 p_rect2Height, MxS32 *p_rect1Left, MxS32 *p_rect1Top, MxS32 *p_rect2Left, MxS32 *p_rect2Top, MxS32 *p_width, MxS32 *p_height)
Computes intersection of two rectangles and modifies their positions and dimensions to the intersecti...
void OmniError(const char *p_message, MxS32 p_status)
Displays or logs an error message using the current user message handler, or aborts on error status i...