#include "Containers/Array.h"
Go to the source code of this file.
|
| enum | EObjectMark {
OBJECTMARK_NOMARKS = 0x00000000
, OBJECTMARK_Saved = 0x00000004
, OBJECTMARK_TagImp = 0x00000008
, OBJECTMARK_TagExp = 0x00000010
,
OBJECTMARK_NotForClient = 0x00000020
, OBJECTMARK_NotForServer = 0x00000040
, OBJECTMARK_NotAlwaysLoadedForEditorGame = 0x00000080
, OBJECTMARK_EditorOnly = 0x00000100
,
OBJECTMARK_NotForTargetPlatform = 0x00000200
, OBJECTMARK_INHERITEDMARKS = OBJECTMARK_NotForClient | OBJECTMARK_NotForServer | OBJECTMARK_EditorOnly | OBJECTMARK_NotForTargetPlatform
, OBJECTMARK_ALLMARKS = 0xffffffff
} |
| |
◆ EObjectMark
Object marks are bits associated with UObject. Marks are:
- Never saved
- Temporary and usually not valid outside of the scope of some function
- Low performance (!) Careful here, do not use marks for performance critical things.
- Public in the sense that the thing marking the objects is treating objects generically and is often not a uobject
This is primarily a legacy support subsystem. Unwinding the scope, lifetime and relationship between marks was not feasible, so the legacy marks are all grouped here. New mark-like things should probably just be new custom annotations.
An alternative design would have been to incorporate marks into the UObjectArray. That would allow high performance iteration, and could save memory if the marks are not sparse. This design was chosen to avoid coupling. Enumeration for the available object marks. It is strongly advised that you do NOT add to this list, but rather make a new object annotation for your needs The reason is that the relationship, lifetime, etc of these marks is often unrelated, but given the legacy code it is really hard to tell. We don't want to replicate that confusing situation going forward.
| Enumerator |
|---|
| OBJECTMARK_NOMARKS | |
| OBJECTMARK_Saved | |
| OBJECTMARK_TagImp | |
| OBJECTMARK_TagExp | |
| OBJECTMARK_NotForClient | |
| OBJECTMARK_NotForServer | |
| OBJECTMARK_NotAlwaysLoadedForEditorGame | |
| OBJECTMARK_EditorOnly | |
| OBJECTMARK_NotForTargetPlatform | |
| OBJECTMARK_INHERITEDMARKS | |
| OBJECTMARK_ALLMARKS | |
◆ GetObjectsWithAllMarks()
Build an array of objects having ALL of a set of marks
- Parameters
-
| Results | array of objects which have any flag. This array is emptied before we add to it. |
| Marks | Logical OR of OBJECTMARK_'s to test |
◆ GetObjectsWithAnyMarks()
Build an array of objects having ANY of a set of marks
- Parameters
-
| Results | array of objects which have any flag. This array is emptied before we add to it. |
| Marks | Logical OR of OBJECTMARK_'s to test |
◆ MarkAllObjects()
Adds marks to an ALL objects Note: Some objects, those not accessible via FObjectIterator, will not be marked
- Parameters
-
| Marks | Logical OR of OBJECTMARK_'s to apply |
◆ MarkObject()
Adds marks to an object
- Parameters
-
| Object | Object to add marks to |
| Marks | Logical OR of OBJECTMARK_'s to apply |
◆ ObjectGetAllMarks()
Returns all of the object marks on a specific object
- Parameters
-
| Object | Object to get marks for |
- Returns
- all Marks for an object
◆ ObjectHasAllMarks()
Tests an object for having ALL of a set of marks
- Parameters
-
| Object | Object to test marks on |
| Marks | Logical OR of OBJECTMARK_'s to test |
- Returns
- true if the object has any of the given marks.
◆ ObjectHasAnyMarks()
Tests an object for having ANY of a set of marks
- Parameters
-
| Object | Object to test marks on |
| Marks | Logical OR of OBJECTMARK_'s to test |
- Returns
- true if the object has any of the given marks.
◆ UnMarkAllObjects()
Removes marks from ALL objects Note: Some objects, those not accessible via FObjectIterator, will not be marked
- Parameters
-
| Marks | Logical OR of OBJECTMARK_'s to remove |
◆ UnMarkObject()
Removes marks from and object
- Parameters
-
| Object | Object to remove marks from |
| Marks | Logical OR of OBJECTMARK_'s to remove |