11#include "Containers/Array.h"
17#include "Containers/Map.h"
19#include "Containers/Set.h"
30#include "Misc/Optional.h"
65#define UE_API COREUOBJECT_API
77namespace UE {
class FPropertyTypeName; }
78namespace UE {
class FPropertyTypeNameBuilder; }
179 UE_DEPRECATED(5.5,
"Use GetElementSize/SetElementSize instead.")
188#if WITH_EDITORONLY_DATA || WITH_METADATA
191#if WITH_EDITORONLY_DATA
195#if WITH_METADATA && UE_WITH_CONSTINIT_UOBJECT
207 int32 Offset_Internal;
217#if WITH_METADATA && UE_WITH_CONSTINIT_UOBJECT
229#if UE_WITH_CONSTINIT_UOBJECT
260#if UE_WITH_CONSTINIT_UOBJECT
268 , BlueprintReplicationCondition()
285#if WITH_EDITORONLY_DATA
342#if WITH_EDITORONLY_DATA
381 UE_DEPRECATED(5.7,
"Visit is deprecated, please use Visit with context instead.")
429#if WITH_EDITORONLY_DATA
446 return Offset_Internal;
451 return Offset_Internal;
456 return Offset_Internal;
461 return Offset_Internal;
466 return Offset_Internal;
477 return SetupOffset();
544 const int32 LoopMax = ArrayIdx < 0 ? ArrayDim : ArrayIdx + 1;
568 for (
int32 Idx = 0; Idx < ArrayDim; Idx++)
702#if WITH_EDITORONLY_DATA
731 inline void* ContainerVoidPtrToValuePtrInternal(
void* ContainerPtr,
int32 ArrayIndex)
const
733 checkf((ArrayIndex >= 0) && (ArrayIndex < ArrayDim),
TEXT(
"Array index out of bounds: %i from an array of size %i"), ArrayIndex, ArrayDim);
742 return (
uint8*)ContainerPtr + Offset_Internal +
static_cast<size_t>(
GetElementSize()) * ArrayIndex;
745 inline void* ContainerUObjectPtrToValuePtrInternal(
UObject* ContainerPtr,
int32 ArrayIndex)
const
747 checkf((ArrayIndex >= 0) && (ArrayIndex < ArrayDim),
TEXT(
"Array index out of bounds: %i from an array of size %i"), ArrayIndex, ArrayDim);
769 return (
uint8*)ContainerPtr + Offset_Internal +
static_cast<size_t>(
GetElementSize()) * ArrayIndex;
798 template<
typename ValueType>
801 return (ValueType*)ContainerUObjectPtrToValuePtrInternal(ContainerPtr, ArrayIndex);
803 template<
typename ValueType>
806 return (ValueType*)ContainerVoidPtrToValuePtrInternal(ContainerPtr, ArrayIndex);
808 template<
typename ValueType>
813 template<
typename ValueType>
821 template<
typename ValueType>
830 template<
typename ValueType>
839 template<
typename ValueType>
848 template<
typename ValueType>
1426 InProp->InitializeValue(Obj.Get());
1444template<
typename InTCppType>
1474 return *GetPropertyValuePtr(
A);
1484 return B ? GetPropertyValue(
B) : GetDefaultPropertyValue();
1489 *GetPropertyValuePtr(
A) =
Value;
1499 GetPropertyValuePtr(
A)->~TCppType();
1504 return ::HasIntrusiveUnsetOptionalState<TCppType>();
1536template<
typename InTCppType,
class TInPropertyBaseClass>
1553 this->SetElementSize(TTypeFundamentals::CPPSize);
1561 template <
typename PropertyParamsType>
1565 this->SetElementSize(TTypeFundamentals::CPPSize);
1568#if UE_WITH_CONSTINIT_UOBJECT
1569 template<
typename... Ts>
1582#if WITH_EDITORONLY_DATA
1586 this->SetElementSize(TTypeFundamentals::CPPSize);
1593 return FString(TTypeFundamentals::GetTypeName());
1600 return TTypeFundamentals::CPPAlignment;
1604 this->SetElementSize(TTypeFundamentals::CPPSize);
1605 this->PropertyFlags |= TTypeFundamentals::GetComputedFlagsPropertyFlags();
1612 TTypeFundamentals::GetPropertyValuePtr(Dest)[
Index] = TTypeFundamentals::GetPropertyValuePtr(Src)[
Index];
1617 TTypeFundamentals::SetPropertyValue(Data, TTypeFundamentals::GetDefaultPropertyValue());
1621 for (
int32 i = 0; i < this->ArrayDim; ++i)
1623 TTypeFundamentals::InitializePropertyValue((
uint8*)Dest + i *
static_cast<size_t>(this->GetElementSize()));
1628 for (
int32 i = 0; i < this->ArrayDim; ++i)
1630 TTypeFundamentals::DestroyPropertyValue((
uint8*)Dest + i *
static_cast<size_t>(this->GetElementSize()));
1647 return *GetPropertyValuePtr_InContainer(
A, ArrayIndex);
1652 return B ? GetPropertyValue_InContainer(
B, ArrayIndex) : TTypeFundamentals::GetDefaultPropertyValue();
1657 *GetPropertyValuePtr_InContainer(
A, ArrayIndex) =
Value;
1672 return TTypeFundamentals::HasIntrusiveUnsetOptionalState();
1677 TTypeFundamentals::InitializeIntrusiveUnsetOptionalValue(Data);
1682 return TTypeFundamentals::IsIntrusiveOptionalValueSet(Data);
1687 TTypeFundamentals::ClearIntrusiveOptionalValue(Data);
1692template<
typename InTCppType,
class TInPropertyBaseClass>
1721#if UE_WITH_CONSTINIT_UOBJECT
1722 template<
typename... Ts>
1732#if WITH_EDITORONLY_DATA
1749 return TTypeFundamentals::GetPropertyValue(
A) == TTypeFundamentals::GetPropertyValue(
B);
1753 return TTypeFundamentals::GetPropertyValue(
A) == TTypeFundamentals::GetDefaultPropertyValue();
1759 Slot << *TTypeFundamentals::GetPropertyValuePtr(
Value);
1778#if UE_WITH_CONSTINIT_UOBJECT
1785#if WITH_EDITORONLY_DATA
1797 UE_API virtual bool IsFloatingPoint()
const;
1802 template <
typename T>
1803 bool CanHoldValue(T
Value)
const
1805 if (std::is_floating_point_v<T>)
1808 return CanHoldDoubleValueInternal((
double)
Value);
1810 else if (std::is_signed_v<T>)
1812 return CanHoldSignedValueInternal(
Value);
1816 return CanHoldUnsignedValueInternal(
Value);
1823 return !!GetIntPropertyEnum();
1848 UE_API virtual void SetFloatingPointPropertyValue(
void* Data,
double Value)
const;
1856 UE_API virtual void SetNumericPropertyValueFromString(
void* Data,
TCHAR const*
Value)
const;
1864 UE_API virtual int64 GetSignedIntPropertyValue(
void const* Data)
const;
1872 UE_API virtual uint64 GetUnsignedIntPropertyValue(
void const* Data)
const;
1880 UE_API virtual double GetFloatingPointPropertyValue(
void const* Data)
const;
1888 UE_API virtual FString GetNumericPropertyValueToString(
void const* Data)
const;
1889 UE_API virtual FString GetNumericPropertyValueToString_InContainer(
void const*
Container)
const;
1895 virtual bool CanHoldDoubleValueInternal (
double Value)
const PURE_VIRTUAL(FNumericProperty::CanHoldDoubleValueInternal,
return false;);
1896 virtual bool CanHoldSignedValueInternal (
int64 Value)
const PURE_VIRTUAL(FNumericProperty::CanHoldSignedValueInternal,
return false;);
1897 virtual bool CanHoldUnsignedValueInternal(
uint64 Value)
const PURE_VIRTUAL(FNumericProperty::CanHoldUnsignedValueInternal,
return false;);
1900template<
typename InTCppType>
1928#if UE_WITH_CONSTINIT_UOBJECT
1935#if WITH_EDITORONLY_DATA
1949 template <
typename OldNumericType>
1956 template <
typename FromType,
typename ToType>
1957 struct TConvertAndSet
1963 ToType NewValue = (ToType)OldValue;
1964 Property.SetPropertyValue_InContainer(Obj, NewValue,
Tag.ArrayIndex);
1967 ((std::is_signed_v<FromType> || std::is_floating_point_v<FromType>) && (!std::is_signed_v<ToType> && !std::is_floating_point_v<ToType>) && OldValue < 0) || ((FromType)NewValue != OldValue),
1970 TEXT(
"Potential data loss during conversion of integer property %s of %s - was (%s) now (%s) - for package: %s"),
1980 template <
typename SameType>
1981 struct TConvertAndSet<SameType, SameType>
2016 if (
Tag.GetType().GetParameterCount() >= 1)
2018 int64 PreviousValue = this->ReadEnumAsInt64(Slot, DefaultsStruct,
Tag);
2019 this->SetPropertyValue_InContainer(Data, (
TCppType)PreviousValue,
Tag.ArrayIndex);
2027 int64 PreviousValue = this->ReadEnumAsInt64(Slot, DefaultsStruct,
Tag);
2028 this->SetPropertyValue_InContainer(Data, (
TCppType)PreviousValue,
Tag.ArrayIndex);
2053 this->SetPropertyValue_InContainer(Data, (
TCppType)
Tag.BoolVal,
Tag.ArrayIndex);
2070 return std::is_floating_point_v<TCppType>;
2074 return std::is_integral_v<TCppType>;
2078 check(std::is_integral_v<TCppType>);
2083 check(std::is_integral_v<TCppType>);
2088 check(std::is_floating_point_v<TCppType>);
2103 return LexToString(TTypeFundamentals::GetPropertyValue(Data));
2113 check(std::is_integral_v<TCppType>);
2114 return (
int64)TTypeFundamentals::GetPropertyValue(Data);
2118 check(std::is_integral_v<TCppType>);
2125 check(std::is_integral_v<TCppType>);
2126 return (
uint64)TTypeFundamentals::GetPropertyValue(Data);
2130 check(std::is_integral_v<TCppType>);
2137 check(std::is_floating_point_v<TCppType>);
2138 return (
double)TTypeFundamentals::GetPropertyValue(Data);
2143 virtual bool CanHoldDoubleValueInternal(
double Value)
const
2148 virtual bool CanHoldSignedValueInternal(
int64 Value)
const
2153 virtual bool CanHoldUnsignedValueInternal(
uint64 Value)
const
2182#if UE_WITH_CONSTINIT_UOBJECT
2190#if WITH_EDITORONLY_DATA
2215#if WITH_EDITORONLY_DATA
2224 UE_API virtual UEnum* GetIntPropertyEnum()
const override;
2251#if UE_WITH_CONSTINIT_UOBJECT
2258#if WITH_EDITORONLY_DATA
2283#if UE_WITH_CONSTINIT_UOBJECT
2290#if WITH_EDITORONLY_DATA
2316#if UE_WITH_CONSTINIT_UOBJECT
2323#if WITH_EDITORONLY_DATA
2348#if UE_WITH_CONSTINIT_UOBJECT
2355#if WITH_EDITORONLY_DATA
2380#if UE_WITH_CONSTINIT_UOBJECT
2387#if WITH_EDITORONLY_DATA
2412#if UE_WITH_CONSTINIT_UOBJECT
2419#if WITH_EDITORONLY_DATA
2444#if UE_WITH_CONSTINIT_UOBJECT
2451#if WITH_EDITORONLY_DATA
2477#if UE_WITH_CONSTINIT_UOBJECT
2484#if WITH_EDITORONLY_DATA
2488 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags)
const override;
2492 UE_API virtual uint32 GetValueTypeHashInternal(
const void* Src)
const override;
2515#if UE_WITH_CONSTINIT_UOBJECT
2522#if WITH_EDITORONLY_DATA
2526 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags)
const override;
2530 UE_API virtual uint32 GetValueTypeHashInternal(
const void* Src)
const override;
2558#if UE_WITH_CONSTINIT_UOBJECT
2574#if UE_WITH_CONSTINIT_UOBJECT
2592#if WITH_EDITORONLY_DATA
2610 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
2617 UE_API virtual void CopyValuesInternal(
void* Dest,
void const* Src,
int32 Count )
const override;
2618 UE_API virtual void ClearValueInternal(
void* Data )
const override;
2619 UE_API virtual void InitializeValueInternal(
void* Dest )
const override;
2620 UE_API virtual int32 GetMinAlignment()
const override;
2622#if WITH_EDITORONLY_DATA
2635 check(FieldSize != 0);
2649 return B ? GetPropertyValue(
B) : GetDefaultPropertyValue();
2653 return B ? GetPropertyValue_InContainer(
B, ArrayIndex) : GetDefaultPropertyValue();
2657 check(FieldSize != 0);
2681 return FieldMask == 0xff;
2709 UE_API uint32 GetValueTypeHashInternal(
const void* Src)
const override;
2743#if UE_WITH_CONSTINIT_UOBJECT
2756#if WITH_EDITORONLY_DATA
2763 UE_API virtual void BeginDestroy()
override;
2770 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
2787 UE_DEPRECATED(5.7,
"GetCPPTypeCustom is deprecated, and object properties now implement GetCPPType directly.")
2841 UE_API virtual void SetObjectPropertyValueUnchecked_InContainer(
void* ContainerAddress,
UObject*
Value,
int32 ArrayIndex = 0)
const;
2846 UE_API virtual UObject* GetObjectPropertyValue_InContainer(
const void* ContainerAddress,
int32 ArrayIndex = 0)
const;
2851 UE_API void SetObjectPropertyValue_InContainer(
void* ContainerAddress,
UObject*
Value,
int32 ArrayIndex = 0)
const;
2863#if USE_CIRCULAR_DEPENDENCY_LOAD_DEFERRING
2873 UE_API virtual bool AllowCrossLevel()
const;
2889 template <
typename T,
typename OutType>
2893 static_assert((std::is_pointer_v<OutType> && std::is_convertible_v<OutType, const UObject*>) ||
TIsTObjectPtr_V<OutType>);
2896 checkf(ArrayIndex >= 0 &&
ArrayCount >= 0 && ArrayIndex <= ArrayDim &&
ArrayCount <= ArrayDim && ArrayIndex <= ArrayDim -
ArrayCount,
TEXT(
"ArrayIndex (%d) and ArrayCount (%d) is invalid for an array of size %d"), ArrayIndex,
ArrayCount, ArrayDim);
2912 T* ValueArray = (T*)AllocateAndInitializeValue();
2919 OutObjects[OutIndex] = ValueArray[ArrayIndex + OutIndex].Get();
2921 DestroyAndFreeValue(ValueArray);
2947 template <
typename T,
typename ValueType>
2951 static_assert((std::is_pointer_v<ValueType> && std::is_convertible_v<ValueType, const UObject*>) ||
TIsTObjectPtr_V<ValueType>);
2954 checkf(ArrayIndex >= 0 &&
ArrayCount >= 0 && ArrayIndex <= ArrayDim &&
ArrayCount <= ArrayDim && ArrayIndex <= ArrayDim -
ArrayCount,
TEXT(
"ArrayIndex (%d) and ArrayCount (%d) is invalid for an array of size %d"), ArrayIndex,
ArrayCount, ArrayDim);
2969 T* ValueArray = (T*)AllocateAndInitializeValue();
2976 ValueArray[ArrayIndex + OutIndex] =
InValues[OutIndex];
2981 DestroyAndFreeValue(ValueArray);
3006template<
typename InTCppType>
3022 this->PropertyClass =
nullptr;
3033 this->PropertyClass = Prop.ClassFunc ? Prop.ClassFunc() :
nullptr;
3044 this->PropertyClass =
InClass;
3047#if UE_WITH_CONSTINIT_UOBJECT
3059#if WITH_EDITORONLY_DATA
3099#if UE_WITH_CONSTINIT_UOBJECT
3106#if WITH_EDITORONLY_DATA
3117#if UE_WITH_REMOTE_OBJECT_HANDLE
3123 UE_API virtual bool AllowCrossLevel()
const override;
3125 UE_API virtual uint32 GetValueTypeHashInternal(
const void* Src)
const override;
3126 UE_API virtual void CopyValuesInternal(
void* Dest,
void const* Src,
int32 Count)
const override;
3128 UE_API virtual void CopySingleValueToScriptVM(
void* Dest,
void const* Src )
const override;
3129 UE_API virtual void CopySingleValueFromScriptVM(
void* Dest,
void const* Src )
const override;
3130 UE_API virtual void CopyCompleteValueToScriptVM(
void* Dest,
void const* Src )
const override;
3131 UE_API virtual void CopyCompleteValueFromScriptVM(
void* Dest,
void const* Src )
const override;
3133 UE_API virtual void CopyCompleteValueFromScriptVM_InContainer(
void*
OutContainer,
void const*
InValue )
const override;
3134 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags)
const override;
3140 UE_API virtual UObject* GetObjectPropertyValue_InContainer(
const void* ContainerAddress,
int32 ArrayIndex = 0)
const override;
3145 UE_API virtual void SetObjectPropertyValueUnchecked_InContainer(
void* ContainerAddress,
UObject*
Value,
int32 ArrayIndex = 0)
const override;
3146 UE_API virtual void SetObjectPtrPropertyValueUnchecked_InContainer(
void* ContainerAddress,
TObjectPtr<UObject> Ptr,
int32 ArrayIndex = 0)
const override;
3186 return GetPropertyValue(Data) !=
nullptr;
3216#if UE_WITH_CONSTINIT_UOBJECT
3223#if WITH_EDITORONLY_DATA
3234#if UE_WITH_REMOTE_OBJECT_HANDLE
3235 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags)
const override;
3241 UE_API virtual uint32 GetValueTypeHashInternal(
const void* Src)
const override;
3243 UE_API virtual void CopySingleValueToScriptVM(
void* Dest,
void const* Src )
const override;
3244 UE_API virtual void CopySingleValueFromScriptVM(
void* Dest,
void const* Src )
const override;
3245 UE_API virtual void CopyCompleteValueToScriptVM(
void* Dest,
void const* Src )
const override;
3246 UE_API virtual void CopyCompleteValueFromScriptVM(
void* Dest,
void const* Src )
const override;
3248 UE_API virtual void CopyCompleteValueFromScriptVM_InContainer(
void*
OutContainer,
void const*
InValue )
const override;
3254 UE_API virtual UObject* GetObjectPropertyValue_InContainer(
const void* ContainerAddress,
int32 ArrayIndex = 0)
const override;
3259 UE_API virtual void SetObjectPropertyValueUnchecked_InContainer(
void* ContainerAddress,
UObject*
Value,
int32 ArrayIndex = 0)
const override;
3260 UE_API virtual void SetObjectPtrPropertyValueUnchecked_InContainer(
void* ContainerAddress,
TObjectPtr<UObject> Ptr,
int32 ArrayIndex = 0)
const override;
3281#if WITH_EDITORONLY_DATA
3285#if UE_WITH_CONSTINIT_UOBJECT
3299 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
3301 UE_API virtual void CopySingleValueToScriptVM(
void* Dest,
void const* Src )
const override;
3302 UE_API virtual void CopySingleValueFromScriptVM(
void* Dest,
void const* Src )
const override;
3303 UE_API virtual void CopyCompleteValueToScriptVM(
void* Dest,
void const* Src )
const override;
3304 UE_API virtual void CopyCompleteValueFromScriptVM(
void* Dest,
void const* Src )
const override;
3306 UE_API virtual void CopyCompleteValueFromScriptVM_InContainer(
void*
OutContainer,
void const*
InValue )
const override;
3312 UE_API virtual UObject* GetObjectPropertyValue_InContainer(
const void* ContainerAddress,
int32 ArrayIndex = 0)
const override;
3317 UE_API virtual void SetObjectPropertyValueUnchecked_InContainer(
void* ContainerAddress,
UObject*
Value,
int32 ArrayIndex = 0)
const override;
3318 UE_API virtual void SetObjectPtrPropertyValueUnchecked_InContainer(
void* ContainerAddress,
TObjectPtr<UObject> Ptr,
int32 ArrayIndex = 0)
const override;
3320 UE_API virtual bool AllowCrossLevel()
const override;
3322 UE_API virtual uint32 GetValueTypeHashInternal(
const void* Src)
const override;
3351#if UE_WITH_CONSTINIT_UOBJECT
3358#if WITH_EDITORONLY_DATA
3368 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
3384 UE_API virtual UObject* GetObjectPropertyValue_InContainer(
const void* ContainerAddress,
int32 ArrayIndex = 0)
const override;
3389 UE_API virtual void SetObjectPropertyValueUnchecked_InContainer(
void* ContainerAddress,
UObject*
Value,
int32 ArrayIndex = 0)
const override;
3390 UE_API virtual void SetObjectPtrPropertyValueUnchecked_InContainer(
void* ContainerAddress,
TObjectPtr<UObject> Ptr,
int32 ArrayIndex = 0)
const override;
3392 UE_API virtual bool AllowCrossLevel()
const override;
3396 UE_API virtual uint32 GetValueTypeHashInternal(
const void* Src)
const override;
3427#if UE_WITH_CONSTINIT_UOBJECT
3435#if WITH_EDITORONLY_DATA
3442 UE_API virtual void BeginDestroy()
override;
3456 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
3457#if WITH_EDITORONLY_DATA
3472#if USE_CIRCULAR_DEPENDENCY_LOAD_DEFERRING
3504#if UE_WITH_CONSTINIT_UOBJECT
3512#if WITH_EDITORONLY_DATA
3527 UE_API virtual void BeginDestroy()
override;
3544#if USE_CIRCULAR_DEPENDENCY_LOAD_DEFERRING
3580#if UE_WITH_CONSTINIT_UOBJECT
3588#if WITH_EDITORONLY_DATA
3602 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
3612#if WITH_EDITORONLY_DATA
3620 UE_API virtual void BeginDestroy()
override;
3633#if USE_CIRCULAR_DEPENDENCY_LOAD_DEFERRING
3664#if UE_WITH_CONSTINIT_UOBJECT
3671#if WITH_EDITORONLY_DATA
3681 UE_API uint32 GetValueTypeHashInternal(
const void* Src)
const override;
3695#if !PLATFORM_ANDROID || !PLATFORM_32BITS
3730#if UE_WITH_CONSTINIT_UOBJECT
3743#if WITH_EDITORONLY_DATA
3767 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
3774 UE_API virtual void FinishDestroyInternal(
void* Data)
const override;
3782 for (
int32 i = 0; i < this->ArrayDim; ++i)
3789 for (
int32 i = 0; i < this->ArrayDim; ++i)
3791 new ((
uint8*)Dest + i *
static_cast<size_t>(this->GetElementSize()))
FScriptArray;
3795 UE_API virtual void CopyValuesInternal(
void* Dest,
void const* Src,
int32 Count )
const override;
3796 UE_API virtual void ClearValueInternal(
void* Data )
const override;
3797 UE_API virtual void DestroyValueInternal(
void* Dest )
const override;
3811 UE_API virtual bool UseBinaryOrNativeSerialization(
const FArchive& Ar)
const override;
3826#if WITH_EDITORONLY_DATA
3831 UE_API virtual void InitializeIntrusiveUnsetOptionalValue(
void* Data)
const override;
3832 UE_API virtual bool IsIntrusiveOptionalValueSet(
const void* Data)
const override;
3833 UE_API virtual void ClearIntrusiveOptionalValue(
void* Data)
const override;
3852 template <
typename CallableType>
3878#if UE_WITH_CONSTINIT_UOBJECT
3899#if WITH_EDITORONLY_DATA
3937 checkf(
false,
TEXT(
"FFreezableScriptMap is not supported at the moment"));
3939 for (
int32 i = 0; i < this->ArrayDim; ++i)
3946 for (
int32 i = 0; i < this->ArrayDim; ++i)
3977 return WithScriptMap(
InMap, [](
auto*
Map) {
return Map->Num(); });
4016#if WITH_EDITORONLY_DATA
4048#if UE_WITH_CONSTINIT_UOBJECT
4063#if WITH_EDITORONLY_DATA
4088 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags)
const override;
4095 UE_API virtual void FinishDestroyInternal(
void* Data)
const override;
4097 UE_API virtual void CopyValuesInternal(
void* Dest,
void const* Src,
int32 Count)
const override;
4098 UE_API virtual void ClearValueInternal(
void* Data)
const override;
4099 UE_API virtual void DestroyValueInternal(
void* Dest)
const override;
4106 UE_API virtual bool UseBinaryOrNativeSerialization(
const FArchive& Ar)
const override;
4132 return SetLayout.
Size;
4160#if WITH_EDITORONLY_DATA
4165 UE_API virtual void InitializeIntrusiveUnsetOptionalValue(
void* Data)
const override;
4166 UE_API virtual bool IsIntrusiveOptionalValueSet(
const void* Data)
const override;
4167 UE_API virtual void ClearIntrusiveOptionalValue(
void* Data)
const override;
4178 template <
typename CallableType>
4183 return Callable(FreezableArray);
4187 return Callable(HeapArray);
4217 int32 Result = WithScriptArray([](
auto*
Array) {
return Array->Num(); });
4228 int32 Result = WithScriptArray([](
auto*
Array) {
return Array->NumUnchecked(); });
4244 return (
uint8*)WithScriptArray([](
auto*
Array) {
return Array->GetData(); }) +
Index *
static_cast<size_t>(ElementSize);
4254 return GetRawPtr(
Index);
4276 AddUninitializedValues(
Count);
4303 UE::Core::Private::OnInvalidArrayNum(
Count);
4333 return AddValues(1);
4353 return AddUninitializedValues(1);
4381 WithScriptArray([
this, Slack](
auto*
Array) {
Array->Empty(Slack, ElementSize, ElementAlignment); });
4416 WithScriptArray([
this,
A,
B](
auto*
Array) {
Array->SwapMemory(
A,
B, ElementSize); });
4438 WithScriptArray([
this, &Ar](
auto*
Array) {
Array->CountBytes(Ar, ElementSize); });
4471 check(ElementSize > 0);
4472 check(InnerProperty);
4495 for (
int32 LoopIndex = 0; LoopIndex <
Count; LoopIndex++, Dest += ElementSize)
4497 InnerProperty->InitializeValue(Dest);
4517 for (
int32 LoopIndex = 0; LoopIndex <
Count; LoopIndex++, Dest += ElementSize)
4519 InnerProperty->DestroyValue(Dest);
4544 for (
int32 LoopIndex = 0; LoopIndex <
Count; LoopIndex++, Dest += ElementSize)
4546 InnerProperty->ClearValue(Dest);
4586template<
typename ContainerType>
4636 return LogicalIndex;
4639 UE_DEPRECATED(5.4,
"Use Iterator directly, GetInternalIndex or GetLogicalIndex instead.")
4683 template <
typename CallableType>
4688 return Callable(FreezableMap);
4692 return Callable(HeapMap);
4744 int32 Result = WithScriptMap([](
auto*
Map) {
return Map->Num(); });
4756 int32 Result = WithScriptMap([](
auto*
Map) {
return Map->NumUnchecked(); });
4768 return WithScriptMap([](
auto*
Map)
4787 if (
Map->Num() == 0)
4789 checkf(InternalIndex == 0, TEXT(
"Legacy implementation was only allowing requesting InternalIndex 0 on an empty container."));
4793 checkf(IsValidIndex(
InternalIndex),
TEXT(
"Invalid internal index. Use IsValidIndex before calling this method."));
4823 if (
Map->Num() == 0)
4825 checkf(InternalIndex == 0, TEXT(
"Legacy implementation was only allowing requesting InternalIndex 0 on an empty container."));
4829 checkf(IsValidIndex(
InternalIndex),
TEXT(
"Invalid internal index. Use IsValidIndex before calling this method."));
4845 if (
Map->Num() == 0)
4847 checkf(InternalIndex == 0, TEXT(
"Legacy implementation was only allowing requesting InternalIndex 0 on an empty container."));
4851 checkf(IsValidIndex(
InternalIndex),
TEXT(
"Invalid internal index. Use IsValidIndex before calling this method."));
4865 return WithScriptMap([
this, Iterator](
auto*
Map) ->
uint8*
4867 checkf(Iterator,
TEXT(
"Invalid Iterator. Test Iterator before calling this method."));
4895 return WithScriptMap([
this, Iterator](
auto*
Map) ->
uint8*
4897 checkf(Iterator,
TEXT(
"Invalid Iterator. Test Iterator before calling this method."));
4925 return WithScriptMap([
this, Iterator](
auto*
Map) ->
uint8*
4927 checkf(Iterator,
TEXT(
"Invalid Iterator. Test Iterator before calling this method."));
5016 return WithScriptMap([
this](
auto*
Map)
5020 return Map->AddUninitialized(MapLayout);
5039 return WithScriptMap([
this, Slack](
auto*
Map)
5041 Map->Empty(Slack, MapLayout);
5054 return WithScriptMap([
this](
auto*
Map)
5058 int32 Result =
Map->AddUninitialized(MapLayout);
5059 ConstructItem(Result);
5099#if UE_USE_COMPACT_SET_AS_DEFAULT
5105 auto DestroyElement = [
this](
void* Element)
5127 if (
Map->IsValidIndex(LocalIndex))
5129 Map->RemoveAt(LocalIndex, MapLayout);
5159 if (
Num() == GetMaxIndex())
5164 int32 MaxIndex =
Map->GetMaxIndex();
5195 if (GetMaxIndex() ==
Num())
5203 if (!IsValidIndex(i))
5209 return LogicalIndex;
5287 return Map->FindPairIndex(
5310 return Map->FindValue(
5390 return Map->FindOrAdd(
5434 int32 Idx = (int32)((Entry - (uint8*)Map->GetData(0, MapLayout)) / MapLayout.SetLayout.Size);
5476 check(KeyProp && ValueProp);
5749 const int32 Result =
Set->NumUnchecked();
5760 const int32 Result =
Set->GetMaxIndex();
5790 checkf(
InternalIndex == 0,
TEXT(
"Legacy implementation was only allowing requesting InternalIndex 0 on an empty container."));
5794 checkf(IsValidIndex(
InternalIndex),
TEXT(
"Invalid internal index. Use IsValidIndex before calling this method."));
5819 checkf(Iterator,
TEXT(
"Invalid Iterator. Test Iterator before calling this method."));
5881 return Set->AddUninitialized(SetLayout);
5899 Set->Empty(Slack, SetLayout);
5913 int32 Result = AddUninitializedValue();
5914 ConstructItem(Result);
5939#if UE_USE_COMPACT_SET_AS_DEFAULT
5945 auto DestroyElement = [
this](
void* Element)
5990 if (
Num() == GetMaxIndex())
5995 int32 MaxIndex = GetMaxIndex();
5998 if (IsValidIndex(
Actual))
6023 if (GetMaxIndex() ==
Num())
6031 if (!IsValidIndex(i))
6037 return LogicalIndex;
6050 const int32 SetMax = GetMaxIndex();
6109 return Set->FindIndex(
6170 RemoveAt(FoundIndex);
6196 : ElementProp(nullptr)
6198 , SetLayout(
FScriptSet::GetScriptLayout(0, 1))
6321#if UE_WITH_CONSTINIT_UOBJECT
6329#if WITH_EDITORONLY_DATA
6346 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
6349 UE_API virtual bool SupportsNetSharedSerialization()
const override;
6354 UE_API virtual void FinishDestroyInternal(
void* Data)
const override;
6356 UE_API virtual void CopyValuesInternal(
void* Dest,
void const* Src,
int32 Count )
const override;
6357 UE_API virtual void ClearValueInternal(
void* Data )
const override;
6358 UE_API virtual void DestroyValueInternal(
void* Dest )
const override;
6359 UE_API virtual void InitializeValueInternal(
void* Dest )
const override;
6361 UE_API virtual int32 GetMinAlignment()
const override;
6366#if WITH_EDITORONLY_DATA
6369 UE_API virtual bool UseBinaryOrNativeSerialization(
const FArchive& Ar)
const override;
6380 UE_API virtual void InitializeIntrusiveUnsetOptionalValue(
void* Data)
const override;
6381 UE_API virtual bool IsIntrusiveOptionalValueSet(
const void* Data)
const override;
6382 UE_API virtual void ClearIntrusiveOptionalValue(
void* Data)
const override;
6386 UE_API virtual uint32 GetValueTypeHashInternal(
const void* Src)
const;
6416#if UE_WITH_CONSTINIT_UOBJECT
6424#if WITH_EDITORONLY_DATA
6431 UE_API virtual void BeginDestroy()
override;
6439 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
6449#if WITH_EDITORONLY_DATA
6481#if UE_WITH_CONSTINIT_UOBJECT
6489#if WITH_EDITORONLY_DATA
6495 UE_API virtual void BeginDestroy()
override;
6504 UE_API virtual bool Identical(
const void*
A,
const void*
B,
uint32 PortFlags )
const override;
6551 this->SignatureFunction =
nullptr;
6567 this->SignatureFunction = Prop.SignatureFunctionFunc ? Prop.SignatureFunctionFunc() :
nullptr;
6570#if UE_WITH_CONSTINIT_UOBJECT
6577#if WITH_EDITORONLY_DATA
6610#if UE_WITH_CONSTINIT_UOBJECT
6617#if WITH_EDITORONLY_DATA
6635 UE_API virtual void ClearDelegate(
UObject*
Parent =
nullptr,
void* PropertyValue =
nullptr)
const override;
6660#if UE_WITH_CONSTINIT_UOBJECT
6667#if WITH_EDITORONLY_DATA
6686 UE_API virtual void ClearDelegate(
UObject*
Parent =
nullptr,
void* PropertyValue =
nullptr)
const override;
6715 , SubPropertyList(nullptr)
6716 , PropertyListNext(nullptr)
6728 return Node ? Node->
Property :
nullptr;
6768 template<
typename T>
6771 bFilterAffectedInstances =
true;
6783 UE_API TDoubleLinkedListNode* GetActiveNode()
const;
6790 UE_API TDoubleLinkedListNode* GetActiveMemberNode()
const;
6850 inline const Type Interactive = 1 << 6;
6871 , bFilterChangedInstances(
false)
6892 template<
typename T>
6895 bFilterChangedInstances =
true;
6918 if (ArrayIndicesPerObject.IsValidIndex(ObjectIteratorIndex))
6920 const int32* ValuePtr = ArrayIndicesPerObject[ObjectIteratorIndex].Find(InName);
6935 return !bFilterChangedInstances || InstancesChanged.Contains(
InInstance);
6964 return (MemberProperty !=
nullptr) ? MemberProperty->GetFName() :
NAME_None;
6991 bool bFilterChangedInstances;
7058template <
class FieldType>
7068 return Owner->Children;
7074 return Owner->ChildProperties;
7088 typename T::BaseFieldClass*
Field;
7090 int32 InterfaceIndex;
7092 const bool bIncludeSuper;
7094 const bool bIncludeDeprecated;
7096 const bool bIncludeInterface;
7102 , InterfaceIndex ( -1 )
7127 return !(
bool)*
this;
7147 return (
const T*)
Field;
7164 while (CurrentStruct)
7170 if (!FieldClass->HasAllCastFlags(T::StaticClassCastFlags()))
7189 if (bIncludeInterface)
7208 InterfaceIndex = -1;
7221template <
typename T>
7248template <UE::CDerivedFrom<UField> T>
7251 static_assert(
sizeof(T) > 0,
"T must not be an incomplete type");
7262 if (It->GetFName() == FieldName)
7272template <UE::CDerivedFrom<UField> T>
7275 static_assert(
sizeof(T) > 0,
"T must not be an incomplete type");
7282template <UE::CDerivedFrom<FField> T>
7285 static_assert(
sizeof(T) > 0,
"T must not be an incomplete type");
7296 if (It->GetFName() == FieldName)
7306template <UE::CDerivedFrom<FField> T>
7309 static_assert(
sizeof(T) > 0,
"T must not be an incomplete type");
7336template <UE::CDerivedFrom<UField> T>
7342template <UE::CDerivedFrom<UField> T>
7348template <UE::CDerivedFrom<FField> T>
7354template <UE::CDerivedFrom<FField> T>
7376 if ( It->GetFName() == FieldName )
7421 : PropertyClass(nullptr)
7424 , bSkipRecursionOnce(
false)
7429 inline explicit operator bool()
const
7432 if (PropertyIteratorStack.Num() > 0)
7441 return PropertyIteratorStack == Rhs.PropertyIteratorStack;
7446 return !(PropertyIteratorStack == Rhs.PropertyIteratorStack);
7452 const FPropertyValueStackEntry& Entry = PropertyIteratorStack.Last();
7453 return Entry.GetPropertyValue();
7458 const FPropertyValueStackEntry& Entry = PropertyIteratorStack.Last();
7459 return &Entry.GetPropertyValue();
7465 return (*this)->Key;
7471 return (*this)->Value;
7483 bSkipRecursionOnce =
true;
7509 enum class EPropertyValueFlags :
uint8
7524 struct FPropertyValueStackEntry
7527 const void*
Owner =
nullptr;
7532 FValueArrayType ValueArray;
7535 int32 ValueIndex = -1;
7538 int32 NextValueIndex = 0;
7540 FPropertyValueStackEntry(
const void*
InValue)
7550 return Owner ==
Rhs.Owner && ValueIndex ==
Rhs.ValueIndex;
7556 return ValueArray[ValueIndex].Key;
7573 bool bSkipRecursionOnce =
false;
7576 bool bMatchAll =
false;
7582 void FillStructProperties(
const UStruct*
Struct, FPropertyValueStackEntry& Entry);
7633 return (*this)->Key;
7667 checkfSlow(
this,
TEXT(
"IsBasedOnArchetype() is called on a null pointer. Fix the call site."));
7687static_assert(
sizeof(
bool) ==
sizeof(
uint8),
"Bool is not one byte.");
7690#define CPP_ARRAY_DIM(ArrayName, ClassName) \
7691 (sizeof(((ClassName*)0)->ArrayName) / sizeof(((ClassName*)0)->ArrayName[0]))
7695#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_7
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define NULL
Definition oodle2base.h:134
constexpr bool operator!(EUpdateTransformFlags Value)
Definition ActorComponent.h:116
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define checkfSlow(expr, format,...)
Definition AssertionMacros.h:333
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
CORE_API FFeedbackContext * GWarn
Definition CoreGlobals.cpp:53
#define GIsEditor
Definition CoreGlobals.h:233
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define WITH_METADATA
Definition CoreMiscDefines.h:32
@ ConstEval
Definition CoreMiscDefines.h:161
ELifetimeCondition
Definition CoreNetTypes.h:20
#define DECLARE_FIELD_API(TClass, TSuperClass, TStaticFlags, TRequiredAPI)
Definition Field.h:257
FieldType * FindFProperty(const TCHAR *InFieldPath)
Definition Field.h:1257
FORCEINLINE constexpr void DestructItem(ElementType *Element)
Definition MemoryOps.h:56
FORCEINLINE constexpr void DestructItems(ElementType *Element, SizeType Count)
Definition MemoryOps.h:81
FORCEINLINE void ConstructItems(void *Dest, const SourceElementType *Source, SizeType Count)
Definition MemoryOps.h:108
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define FRIEND_ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:17
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
const TCHAR * LexToString(EAnalyticsRecordEventMode Mode)
Definition IAnalyticsProvider.cpp:5
void LexFromString(EAudioFeature &OutFeature, const TCHAR *String)
Definition IOSAppDelegate.cpp:163
constexpr bool HasIntrusiveUnsetOptionalState()
Definition IntrusiveUnsetOptionalState.h:85
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UE_CLOG(Condition, CategoryName, Verbosity, Format,...)
Definition LogMacros.h:298
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
T TNotNull
Definition NotNull.h:307
#define NAME_NO_NUMBER_INTERNAL
Definition NameTypes.h:157
@ FNAME_Find
Definition NameTypes.h:209
const bool
Definition NetworkReplayStreaming.h:178
#define MAX_int32
Definition NumericLimits.h:25
#define CPF_AllFlags
Definition ObjectMacros.h:506
@ CASTCLASS_FArrayProperty
Definition ObjectMacros.h:357
@ CASTCLASS_FNumericProperty
Definition ObjectMacros.h:360
@ CASTCLASS_FFloatProperty
Definition ObjectMacros.h:344
@ CASTCLASS_FIntProperty
Definition ObjectMacros.h:343
@ CASTCLASS_FBoolProperty
Definition ObjectMacros.h:353
@ CASTCLASS_FDelegateProperty
Definition ObjectMacros.h:359
@ CASTCLASS_FUInt64Property
Definition ObjectMacros.h:345
@ CASTCLASS_FMulticastSparseDelegateProperty
Definition ObjectMacros.h:387
@ CASTCLASS_FInterfaceProperty
Definition ObjectMacros.h:348
@ CASTCLASS_FNameProperty
Definition ObjectMacros.h:349
@ CASTCLASS_FMapProperty
Definition ObjectMacros.h:382
@ CASTCLASS_FDoubleProperty
Definition ObjectMacros.h:368
@ CASTCLASS_FByteProperty
Definition ObjectMacros.h:342
@ CASTCLASS_FSetProperty
Definition ObjectMacros.h:383
@ CASTCLASS_FClassProperty
Definition ObjectMacros.h:346
@ CASTCLASS_FSoftObjectProperty
Definition ObjectMacros.h:365
@ CASTCLASS_FMulticastDelegateProperty
Definition ObjectMacros.h:361
@ CASTCLASS_FWeakObjectProperty
Definition ObjectMacros.h:363
@ CASTCLASS_FInt64Property
Definition ObjectMacros.h:358
@ CASTCLASS_FUInt16Property
Definition ObjectMacros.h:354
@ CASTCLASS_FInt8Property
Definition ObjectMacros.h:337
@ CASTCLASS_FInt16Property
Definition ObjectMacros.h:367
@ CASTCLASS_FObjectProperty
Definition ObjectMacros.h:352
@ CASTCLASS_FStructProperty
Definition ObjectMacros.h:356
@ CASTCLASS_FMulticastInlineDelegateProperty
Definition ObjectMacros.h:386
@ CASTCLASS_FSoftClassProperty
Definition ObjectMacros.h:369
@ CASTCLASS_FObjectPropertyBase
Definition ObjectMacros.h:362
@ CASTCLASS_FProperty
Definition ObjectMacros.h:351
@ CASTCLASS_FUInt32Property
Definition ObjectMacros.h:347
@ CASTCLASS_FLazyObjectProperty
Definition ObjectMacros.h:364
EPropertyFlags
Definition ObjectMacros.h:416
@ CPF_Net
Property is relevant to network replication.
Definition ObjectMacros.h:424
@ CPF_Deprecated
Property is deprecated. Read it from an archive, but don't save it.
Definition ObjectMacros.h:448
@ CPF_ContainsInstancedReference
Property contains component references.
Definition ObjectMacros.h:458
@ CPF_ZeroConstructor
memset is fine for construction
Definition ObjectMacros.h:428
@ CPF_NoDestructor
No destructor.
Definition ObjectMacros.h:455
@ CPF_InstancedReference
Property is a component references.
Definition ObjectMacros.h:438
@ CPF_HasGetValueTypeHash
This property can generate a meaningful hash value.
Definition ObjectMacros.h:470
@ CPF_IsPlainOldData
If this is set, then the property can be memcopied instead of CopyCompleteValue / CopySingleValue.
Definition ObjectMacros.h:449
@ CPF_NonNullable
Object property can never be null.
Definition ObjectMacros.h:431
@ CPF_None
Definition ObjectMacros.h:417
EMapPropertyFlags
Definition ObjectMacros.h:525
@ UsesMemoryImageAllocator
EArrayPropertyFlags
Definition ObjectMacros.h:514
@ UsesMemoryImageAllocator
#define CPF_DevelopmentAssets
Definition ObjectMacros.h:499
EObjectFlags
Definition ObjectMacros.h:552
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
EInternal
Definition ObjectMacros.h:175
@ EC_InternalUseOnlyConstructor
Definition ObjectMacros.h:175
@ PPF_UseDeprecatedProperties
Definition PropertyPortFlags.h:117
@ PPF_None
Definition PropertyPortFlags.h:15
EPropertyVisitorControlFlow
Definition PropertyVisitor.h:15
UClass * StaticClass()
Definition ReflectedTypeAccessors.h:13
@ IsStruct
Indicates the property is eligible for shared serialization.
#define UE_API
Definition SColorGradingComponentViewer.h:12
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
decltype(auto) Visit(Func &&Callable, Variants &&... Args)
Definition TVariant.h:271
EName
Definition UnrealNames.h:16
UE_FORCEINLINE_HINT T BitMask(uint32 Count)
T * FindUField(const UStruct *Owner, FName FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
Definition UnrealType.h:7249
EPropertyValueIteratorFlags
Definition UnrealType.h:7395
TScriptArray< TMemoryImageAllocator< DEFAULT_ALIGNMENT > > FFreezableScriptArray
Definition UnrealType.h:3693
#define UE_API
Definition UnrealType.h:65
T * FindFieldChecked(const UStruct *Scope, FName FieldName)
Definition UnrealType.h:7367
TScriptMap< FMemoryImageSetAllocator > FFreezableScriptMap
Definition UnrealType.h:3837
EObjectPropertyOptions
Definition UnrealType.h:3077
@ AllowNullValuesOnNonNullableProperty
EPropertyPointerType
Definition UnrealType.h:156
EFieldIterationFlags
Definition UnrealType.h:7024
EPropertyMemoryAccess
Definition UnrealType.h:142
FieldType * GetChildFieldsFromStruct(const UStruct *Owner)
Definition UnrealType.h:7059
EPropertyExportCPPFlags
Definition UnrealType.h:106
@ CPPF_NoConst
Definition UnrealType.h:118
@ CPPF_BlueprintCppBackend
Definition UnrealType.h:124
@ CPPF_NoRef
Definition UnrealType.h:120
@ CPPF_NoStaticArray
Definition UnrealType.h:122
@ CPPF_ArgumentOrReturnValue
Definition UnrealType.h:112
@ CPPF_OptionalValue
Definition UnrealType.h:110
@ CPPF_CustomTypeName
Definition UnrealType.h:116
@ CPPF_Implementation
Definition UnrealType.h:114
@ CPPF_NoTObjectPtr
Definition UnrealType.h:126
@ CPPF_None
Definition UnrealType.h:108
FFieldVariant FindUFieldOrFProperty(const UStruct *Owner, FName FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
Definition UnrealType.h:7317
EConvertFromTypeResult
Definition UnrealType.h:130
uint32 Offset
Definition VulkanMemory.cpp:4033
int32 InternalIndex
Definition VulkanMemory.cpp:4036
if(Failed) console_printf("Failed.\n")
UEBinkAudioDecodeInterface * Interface
Definition binka_ue_decode_test.cpp:24
Definition Archive.h:1208
UE_FORCEINLINE_HINT uint32 GetPortFlags() const
Definition Archive.h:474
virtual CORE_API FString GetArchiveName() const
Definition Archive.cpp:335
Definition UnrealType.h:3702
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:3718
virtual int32 GetMinAlignment() const override
Definition UnrealType.h:3804
TTypeFundamentals::TCppType TCppType
Definition UnrealType.h:3719
virtual void InitializeValueInternal(void *Dest) const override
Definition UnrealType.h:3776
Definition UnrealType.h:2543
UE_FORCEINLINE_HINT bool IsNativeBool() const
Definition UnrealType.h:2679
virtual bool HasIntrusiveUnsetOptionalState() const override
Definition UnrealType.h:2711
bool TCppType
Definition UnrealType.h:2632
UE_FORCEINLINE_HINT bool GetPropertyValue_InContainer(void const *A, int32 ArrayIndex=0) const
Definition UnrealType.h:2639
FORCEINLINE uint8 GetByteMask() const
Definition UnrealType.h:2703
void SetPropertyValue(void *A, bool Value) const
Definition UnrealType.h:2655
static UE_FORCEINLINE_HINT bool GetDefaultPropertyValue()
Definition UnrealType.h:2643
UE_FORCEINLINE_HINT bool GetOptionalPropertyValue_InContainer(void const *B, int32 ArrayIndex=0) const
Definition UnrealType.h:2651
UE_FORCEINLINE_HINT void SetPropertyValue_InContainer(void *A, bool Value, int32 ArrayIndex=0) const
Definition UnrealType.h:2661
UE_FORCEINLINE_HINT uint8 GetFieldMask() const
Definition UnrealType.h:2685
UE_FORCEINLINE_HINT bool GetOptionalPropertyValue(void const *B) const
Definition UnrealType.h:2647
FORCEINLINE uint8 GetBoolFieldSize() const
Definition UnrealType.h:2697
UE_FORCEINLINE_HINT uint8 GetByteOffset() const
Definition UnrealType.h:2691
bool GetPropertyValue(void const *A) const
Definition UnrealType.h:2633
Definition UnrealType.h:2167
Definition UnrealType.h:3411
UE_FORCEINLINE_HINT void SetMetaClass(UClass *NewMetaClass)
Definition UnrealType.h:3475
Definition UnrealType.h:1416
FDefaultConstructedPropertyElement(const FProperty *InProp)
Definition UnrealType.h:1419
FDefaultConstructedPropertyElement()=default
void * GetObjAddress() const
Definition UnrealType.h:1429
Definition UnrealType.h:6397
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:6404
TTypeFundamentals::TCppType TCppType
Definition UnrealType.h:6405
Definition UnrealType.h:2503
Definition UnrealType.h:6738
TSet< UObject * > AffectedInstances
Definition UnrealType.h:6810
void SetAffectedArchetypeInstances(T &&InAffectedInstances)
Definition UnrealType.h:6769
FEditPropertyChain()
Definition UnrealType.h:6742
TDoubleLinkedListNode * ActiveMemberPropertyNode
Definition UnrealType.h:6805
TDoubleLinkedListNode * ActivePropertyNode
Definition UnrealType.h:6797
bool bFilterAffectedInstances
Definition UnrealType.h:6815
bool IsA() const
Definition Field.h:738
FString GetName() const
Definition Field.h:848
virtual COREUOBJECT_API void GetPreloadDependencies(TArray< UObject * > &OutDeps)
Definition Field.cpp:465
T * GetOwner() const
Definition Field.h:810
COREUOBJECT_API FString GetFullName() const
Definition Field.cpp:599
FFieldVariant Owner
Definition Field.h:600
virtual FField * GetInnerFieldByName(const FName &InName)
Definition Field.h:890
virtual COREUOBJECT_API void AddReferencedObjects(FReferenceCollector &Collector)
Definition Field.cpp:474
FFieldClass * GetClass() const
Definition Field.h:722
virtual void GetInnerFields(TArray< FField * > &OutFields)
Definition Field.h:896
COREUOBJECT_API UClass * GetOwnerClass() const
Definition Field.cpp:372
virtual COREUOBJECT_API void AddCppProperty(FProperty *Property)
Definition Field.cpp:560
COREUOBJECT_API bool IsValidLowLevel() const
Definition Field.cpp:517
Definition UnrealType.h:2465
Definition UnrealType.h:2271
Definition UnrealType.h:2336
Definition UnrealType.h:2239
Definition UnrealType.h:2304
Definition UnrealType.h:3561
virtual bool SupportsNetSharedSerialization() const override
Definition UnrealType.h:3605
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:3568
TTypeFundamentals::TCppType TCppType
Definition UnrealType.h:3569
UE_FORCEINLINE_HINT void SetInterfaceClass(UClass *NewInterfaceClass)
Definition UnrealType.h:3636
Definition UnrealType.h:3269
Definition UnrealType.h:3843
bool IsValidIndex(void *InMap, int32 InternalIndex) const
Definition UnrealType.h:3993
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:3866
int32 GetNum(void *InMap) const
Definition UnrealType.h:3975
virtual void InitializeValueInternal(void *Dest) const override
Definition UnrealType.h:3933
int32 GetPairStride() const
Definition UnrealType.h:3984
const FProperty * GetKeyProperty() const
Definition UnrealType.h:4007
uint8 * GetPairPtr(void *InMap, int32 InternalIndex) const
Definition UnrealType.h:4002
TTypeFundamentals::TCppType TCppType
Definition UnrealType.h:3867
const FProperty * GetValueProperty() const
Definition UnrealType.h:4012
Definition UnrealType.h:6464
virtual const FMulticastScriptDelegate * GetMulticastDelegate(const void *PropertyValue) const PURE_VIRTUAL(FMulticastDelegateProperty
Definition UnrealType.h:6515
Definition UnrealType.h:6593
FMulticastInlineDelegateProperty(FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
Definition UnrealType.h:6598
Definition UnrealType.h:6643
FMulticastSparseDelegateProperty(FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
Definition UnrealType.h:6648
Definition UnrealType.h:3649
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:3652
TTypeFundamentals::TCppType TCppType
Definition UnrealType.h:3653
Definition NameTypes.h:617
CORE_API FString ToString() const
Definition UnrealNames.cpp:3537
FORCEINLINE bool IsNone() const
Definition NameTypes.h:827
Definition UnrealType.h:1766
Definition UnrealType.h:2725
UE_FORCEINLINE_HINT UObject * LoadObjectPropertyValue_InContainer(const void *PropertyValueAddress, int32 ArrayIndex=0) const
Definition UnrealType.h:2833
virtual bool SupportsNetSharedSerialization() const override
Definition UnrealType.h:2772
PGO_LINK_DISABLE_WARNINGS void GetWrappedUObjectPtrValues(OutType *OutObjects, const void *SrcAddress, EPropertyMemoryAccess SrcAccess, int32 ArrayIndex, int32 ArrayCount) const
Definition UnrealType.h:2890
TObjectPtr< class UClass > PropertyClass
Definition UnrealType.h:2731
UE_FORCEINLINE_HINT void SetPropertyClass(UClass *NewPropertyClass)
Definition UnrealType.h:2866
virtual UObject * LoadObjectPropertyValue(const void *PropertyValueAddress) const
Definition UnrealType.h:2829
PGO_LINK_ENABLE_WARNINGS void SetWrappedUObjectPtrValues(void *DestAddress, EPropertyMemoryAccess DestAccess, ValueType *InValues, int32 ArrayIndex, int32 ArrayCount) const
Definition UnrealType.h:2948
Definition UnrealType.h:3087
virtual bool IsIntrusiveOptionalValueSet(const void *Data) const
Definition UnrealType.h:3183
TObjectPtr< UObject > * GetObjectPtrPropertyValuePtr(const void *PropertyValueAddress) const
Definition UnrealType.h:3160
virtual void InitializeIntrusiveUnsetOptionalValue(void *Data) const override
Definition UnrealType.h:3178
virtual bool HasIntrusiveUnsetOptionalState() const
Definition UnrealType.h:3170
TObjectPtr< UObject > & GetObjectPtrPropertyValueRef(const void *PropertyValueAddress) const
Definition UnrealType.h:3165
virtual void ClearIntrusiveOptionalValue(void *Data) const
Definition UnrealType.h:3189
Definition OutputDevice.h:133
Definition UnrealType.h:1372
Definition UnrealType.h:7402
const BasePairType & operator*() const
Definition UnrealType.h:7450
const BasePairType * operator->() const
Definition UnrealType.h:7456
FPropertyValueIterator()
Definition UnrealType.h:7420
UE_FORCEINLINE_HINT const void * Value() const
Definition UnrealType.h:7469
UE_FORCEINLINE_HINT bool operator!=(const FPropertyValueIterator &Rhs) const
Definition UnrealType.h:7444
UE_FORCEINLINE_HINT const FProperty * Key() const
Definition UnrealType.h:7463
UE_FORCEINLINE_HINT bool operator==(const FPropertyValueIterator &Rhs) const
Definition UnrealType.h:7439
UE_FORCEINLINE_HINT void operator++()
Definition UnrealType.h:7475
UE_FORCEINLINE_HINT void SkipRecursiveProperty()
Definition UnrealType.h:7481
Definition UnrealType.h:174
bool ShouldDuplicateValue() const
Definition UnrealType.h:1219
static COREUOBJECT_API FName FindRedirectedPropertyName(const UStruct *ObjectStruct, FName OldName)
Definition Property.cpp:2308
virtual COREUOBJECT_API void SaveTypeName(UE::FPropertyTypeNameBuilder &Type) const
Definition Property.cpp:2433
COREUOBJECT_API FString GetNameCPP() const
Definition Property.cpp:982
virtual bool HasIntrusiveUnsetOptionalState() const PURE_VIRTUAL(FProperty virtual COREUOBJECT_API void InitializeIntrusiveUnsetOptionalValue(void *Data) const
Definition Property.cpp:2363
COREUOBJECT_API void GetSingleValue_InContainer(const void *InContainer, void *OutValue, int32 ArrayIndex) const
Definition Property.cpp:1337
UE_FORCEINLINE_HINT bool ExportText_InContainer(int32 Index, FString &ValueStr, const void *Data, const void *Delta, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
Definition UnrealType.h:724
void SerializeBinProperty(FStructuredArchive::FSlot Slot, void *Data, int32 ArrayIdx=-1)
Definition UnrealType.h:538
FProperty * PostConstructLinkNext
Definition UnrealType.h:238
virtual COREUOBJECT_API uint32 GetValueTypeHashInternal(const void *Src) const
Definition Property.cpp:2357
void FinishDestroy(void *Data) const
Definition UnrealType.h:1070
void FinishDestroy_InContainer(void *Data) const
Definition UnrealType.h:1087
virtual COREUOBJECT_API void CopySingleValueToScriptVM(void *Dest, void const *Src) const
Definition Property.cpp:883
UE_FORCEINLINE_HINT FProperty * GetRepOwner()
Definition UnrealType.h:1306
virtual COREUOBJECT_API void LinkInternal(FArchive &Ar)
Definition Property.cpp:1202
EPropertyFlags PropertyFlags
Definition UnrealType.h:182
COREUOBJECT_API bool ExportText_Direct(FString &ValueStr, const void *Data, const void *Delta, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
Definition Property.cpp:995
void DestroyValue(void *Dest) const
Definition UnrealType.h:1025
const TCHAR * ImportText_Direct(const TCHAR *Buffer, void *PropertyPtr, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText=(FOutputDevice *) GWarn) const
Definition UnrealType.h:623
COREUOBJECT_API bool ValidateImportFlags(uint32 PortFlags, FOutputDevice *ErrorText=NULL) const
Definition Property.cpp:959
UE_FORCEINLINE_HINT ValueType * ContainerPtrToValuePtr(UObject *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:799
void ClearValue(void *Data) const
Definition UnrealType.h:988
UE_FORCEINLINE_HINT int32 GetOffset_ReplaceWith_ContainerPtrToValuePtr() const
Definition UnrealType.h:464
UE_FORCEINLINE_HINT void CopyCompleteValue_InContainer(void *Dest, void const *Src) const
Definition UnrealType.h:927
COREUOBJECT_API EPropertyVisitorControlFlow Visit(const FPropertyVisitorData &Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorPath &, const FPropertyVisitorData &)> InFunc) const
Definition Property.cpp:1222
UE_FORCEINLINE_HINT ValueType * ContainerPtrToValuePtr(void *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:804
virtual COREUOBJECT_API bool IsIntrusiveOptionalValueSet(const void *Data) const
Definition Property.cpp:2368
COREUOBJECT_API void SetElementSize(int32 NewSize)
Definition Property.cpp:721
FProperty * PropertyLinkNext
Definition UnrealType.h:211
virtual COREUOBJECT_API FString GetCPPMacroType(FString &ExtendedTypeText) const
Definition Property.cpp:987
COREUOBJECT_API void PerformOperationWithSetter(void *OutContainer, void *DirectPropertyAddress, TFunctionRef< void(void *)> DirectValueAccessFunc) const
Definition Property.cpp:1364
FProperty * GetOwnerProperty()
Definition UnrealType.h:1244
virtual COREUOBJECT_API void EmitReferenceInfo(UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath)
Definition GarbageCollection.cpp:6669
virtual COREUOBJECT_API int32 GetMinAlignment() const
Definition Property.cpp:1193
void CopyCompleteValue(void *Dest, void const *Src) const
Definition UnrealType.h:913
UE_FORCEINLINE_HINT void ClearPropertyFlags(EPropertyFlags NewFlags)
Definition UnrealType.h:1275
UE_FORCEINLINE_HINT void SetPropertyFlags(EPropertyFlags NewFlags)
Definition UnrealType.h:1271
virtual COREUOBJECT_API bool SameType(const FProperty *Other) const
Definition Property.cpp:1277
const FProperty * GetOwnerProperty() const
Definition UnrealType.h:1254
virtual COREUOBJECT_API void CopyCompleteValueToScriptVM(void *Dest, void const *Src) const
Definition Property.cpp:888
int32 Link(FArchive &Ar)
Definition UnrealType.h:474
UE_FORCEINLINE_HINT int32 GetOffset_ForUFunction() const
Definition UnrealType.h:449
virtual COREUOBJECT_API void * ResolveVisitedPathInfo(void *Data, const FPropertyVisitorInfo &Info) const
Definition Property.cpp:1245
void * PointerToValuePtr(void const *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, int32 ArrayIndex=0) const
Definition UnrealType.h:777
virtual COREUOBJECT_API void * GetValueAddressAtIndex_Direct(const FProperty *Inner, void *InValueAddress, int32 Index) const
Definition Property.cpp:1301
virtual void virtual ExportText_Internal(FString &ValueStr, const void *PropertyValueOrContainer, EPropertyPointerType PointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const PURE_VIRTUAL(FProperty const TCHAR ImportText_Internal)(const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PointerType, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText) const PURE_VIRTUAL(FProperty
Definition UnrealType.h:719
virtual COREUOBJECT_API bool UseBinaryOrNativeSerialization(const FArchive &Ar) const
Definition Property.cpp:2421
virtual COREUOBJECT_API bool LoadTypeName(UE::FPropertyTypeName Type, const FPropertyTag *Tag=nullptr)
Definition Property.cpp:2426
COREUOBJECT_API void Init()
Definition Property.cpp:798
int32 GetElementSize() const
Definition UnrealType.h:291
UE_FORCEINLINE_HINT ValueType const * ContainerPtrToValuePtr(UObject const *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:809
virtual FString GetCPPType(FString *ExtendedTypeText=NULL, uint32 CPPExportFlags=0) const PURE_VIRTUAL(FProperty
Definition UnrealType.h:339
friend class UEProperty_Private::FProperty_DoNotUse
Definition UnrealType.h:418
COREUOBJECT_API uint32 GetValueTypeHash(const void *Src) const
Definition Property.cpp:2345
UE_FORCEINLINE_HINT bool ContainsInstancedObjectProperty() const
Definition UnrealType.h:1193
virtual void CallGetter(const void *Container, void *OutValue) const
Definition UnrealType.h:376
virtual COREUOBJECT_API FName GetID() const
Definition Property.cpp:1184
virtual bool HasSetterOrGetter() const
Definition UnrealType.h:358
const ValueType * ContainerPtrToValuePtrForDefaults(const UStruct *ContainerClass, const void *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:849
virtual COREUOBJECT_API void PostDuplicate(const FField &InField) override
Definition Property.cpp:869
void LinkWithoutChangingOffset(FArchive &Ar)
Definition UnrealType.h:469
static COREUOBJECT_API const TCHAR * ImportSingleProperty(const TCHAR *Str, void *DestData, const UStruct *ObjectStruct, UObject *SubobjectOuter, int32 PortFlags, FOutputDevice *Warn, TArray< struct FDefinedProperty > &DefinedProperties)
Definition Property.cpp:1581
COREUOBJECT_API void PerformOperationWithGetter(void *OutContainer, const void *DirectPropertyAddress, TFunctionRef< void(const void *)> DirectValueAccessFunc) const
Definition Property.cpp:1394
virtual COREUOBJECT_API void ClearValueInternal(void *Data) const
Definition Property.cpp:929
COREUOBJECT_API void SetOffset_Internal(int32 NewOffset)
Definition Property.cpp:1272
COREUOBJECT_API void SetSingleValue_InContainer(void *OutContainer, const void *InValue, int32 ArrayIndex) const
Definition Property.cpp:1308
UE_FORCEINLINE_HINT int32 GetOffset_ForGC() const
Definition UnrealType.h:454
FProperty * DestructorLinkNext
Definition UnrealType.h:228
UE_FORCEINLINE_HINT int32 GetSize() const
Definition UnrealType.h:1206
virtual COREUOBJECT_API void CopyCompleteValueToScriptVM_InContainer(void *OutValue, void const *InContainer) const
Definition Property.cpp:903
virtual COREUOBJECT_API bool ContainsObjectReference(TArray< const FStructProperty * > &EncounteredStructProps, EPropertyObjectReferenceType InReferenceType=EPropertyObjectReferenceType::Strong) const
Definition GarbageCollection.cpp:6521
void ExportTextItem_InContainer(FString &ValueStr, const void *Container, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
Definition UnrealType.h:590
COREUOBJECT_API void * AllocateAndInitializeValue() const
Definition Property.cpp:1282
COREUOBJECT_API bool ShouldSerializeValue(FArchive &Ar) const
Definition Property.cpp:1025
virtual COREUOBJECT_API void ClearIntrusiveOptionalValue(void *Data) const
Definition Property.cpp:2374
const ValueType * ContainerPtrToValuePtrForDefaults(const UStruct *ContainerClass, const UObject *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:840
virtual COREUOBJECT_API void CopySingleValueFromScriptVM(void *Dest, void const *Src) const
Definition Property.cpp:893
virtual bool Identical(const void *A, const void *B, uint32 PortFlags=0) const PURE_VIRTUAL(FProperty
Definition UnrealType.h:515
UE_FORCEINLINE_HINT bool IsEditorOnlyProperty() const
Definition UnrealType.h:1318
COREUOBJECT_API bool ShouldPort(uint32 PortFlags=0) const
Definition Property.cpp:1135
void CopySingleValue(void *Dest, void const *Src) const
Definition UnrealType.h:879
bool Identical_InContainer(const void *A, const void *B, int32 ArrayIndex=0, uint32 PortFlags=0) const
Definition UnrealType.h:526
UE_FORCEINLINE_HINT bool IsInContainer(const UStruct *ContainerClass) const
Definition UnrealType.h:863
void InitializeValue_InContainer(void *Dest) const
Definition UnrealType.h:1126
UE_FORCEINLINE_HINT EPropertyFlags GetPropertyFlags() const
Definition UnrealType.h:1267
virtual bool HasGetter() const
Definition UnrealType.h:353
virtual COREUOBJECT_API void FinishDestroyInternal(void *Data) const
Definition Property.cpp:947
virtual COREUOBJECT_API bool ContainsClearOnFinishDestroyInternal(TArray< const FStructProperty * > &EncounteredStructProps) const
Definition Property.cpp:942
UE_FORCEINLINE_HINT bool HasAnyPropertyFlags(uint64 FlagsToCheck) const
Definition UnrealType.h:1286
FProperty * NextRef
Definition UnrealType.h:216
virtual COREUOBJECT_API void EmitIntrusiveOptionalReferenceInfo(UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath)
Definition Property.cpp:2379
virtual void CallSetter(void *Container, const void *InValue) const
Definition UnrealType.h:367
virtual COREUOBJECT_API void CopyCompleteValueFromScriptVM_InContainer(void *OutContainer, void const *InValue) const
Definition Property.cpp:916
virtual COREUOBJECT_API EConvertFromTypeResult ConvertFromType(const FPropertyTag &Tag, FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults)
Definition Property.cpp:1207
COREUOBJECT_API void DestroyAndFreeValue(void *InMemory) const
Definition Property.cpp:1292
virtual COREUOBJECT_API void InitializeValueInternal(void *Dest) const
Definition Property.cpp:937
const TCHAR * ImportText_InContainer(const TCHAR *Buffer, void *Container, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText=(FOutputDevice *) GWarn) const
Definition UnrealType.h:604
virtual COREUOBJECT_API bool SupportsNetSharedSerialization() const
Definition Property.cpp:1113
virtual COREUOBJECT_API void CopyCompleteValueFromScriptVM(void *Dest, void const *Src) const
Definition Property.cpp:898
void DestroyValue_InContainer(void *Dest) const
Definition UnrealType.h:1038
void SerializeNonMatchingBinProperty(FStructuredArchive::FSlot Slot, void *Data, void const *DefaultData, UStruct *DefaultStruct)
Definition UnrealType.h:561
ELifetimeCondition GetBlueprintReplicationCondition() const
Definition UnrealType.h:1326
virtual COREUOBJECT_API void DestroyValueInternal(void *Dest) const
Definition Property.cpp:933
virtual COREUOBJECT_API bool CanSerializeFromTypeName(UE::FPropertyTypeName Type) const
Definition Property.cpp:2438
uint16 RepIndex
Definition UnrealType.h:183
void SetValue_InContainer(void *OutContainer, const void *InValue) const
Definition UnrealType.h:633
void GetValue_InContainer(void const *InContainer, void *OutValue) const
Definition UnrealType.h:644
ValueType * ContainerPtrToValuePtrForDefaults(const UStruct *ContainerClass, void *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:831
FName RepNotifyFunc
Definition UnrealType.h:240
void InitializeValue(void *Dest) const
Definition UnrealType.h:1108
UE_FORCEINLINE_HINT ValueType const * ContainerPtrToValuePtr(void const *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:814
friend class FMapProperty
Definition UnrealType.h:417
bool ContainsFinishDestroy(TArray< const FStructProperty * > &EncounteredStructProps) const
Definition UnrealType.h:1053
void ClearValue_InContainer(void *Data, int32 ArrayIndex=0) const
Definition UnrealType.h:1005
bool ContainsWeakObjectReference() const
Definition UnrealType.h:1181
void ExportTextItem_Direct(FString &ValueStr, const void *PropertyValue, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
Definition UnrealType.h:585
void SetBlueprintReplicationCondition(ELifetimeCondition InBlueprintReplicationCondition)
Definition UnrealType.h:1327
UE_FORCEINLINE_HINT bool HasAllPropertyFlags(uint64 FlagsToCheck) const
Definition UnrealType.h:1297
UE_FORCEINLINE_HINT int32 GetOffset_ForInternal() const
Definition UnrealType.h:459
UE_FORCEINLINE_HINT bool IsInContainer(int32 ContainerSize) const
Definition UnrealType.h:858
virtual COREUOBJECT_API void CopyValuesInternal(void *Dest, void const *Src, int32 Count) const
Definition Property.cpp:2352
ValueType * ContainerPtrToValuePtrForDefaults(const UStruct *ContainerClass, UObject *ContainerPtr, int32 ArrayIndex=0) const
Definition UnrealType.h:822
virtual COREUOBJECT_API void InstanceSubobjects(void *Data, void const *DefaultData, TNotNull< UObject * > Owner, struct FObjectInstancingGraph *InstanceGraph)
Definition Property.cpp:1189
virtual void SerializeItem(FStructuredArchive::FSlot Slot, void *Value, void const *Defaults=NULL) const PURE_VIRTUAL(FProperty virtual COREUOBJECT_API boo NetSerializeItem)(FArchive &Ar, UPackageMap *Map, void *Data, TArray< uint8 > *MetaData=NULL) const
Definition UnrealType.h:582
virtual bool HasSetter() const
Definition UnrealType.h:348
UE_FORCEINLINE_HINT int32 GetOffset_ForDebug() const
Definition UnrealType.h:444
Definition UObjectGlobals.h:2492
Definition UnrealType.h:4564
UE_FORCEINLINE_HINT FScriptArrayHelper_InContainer(const FArrayProperty *InProperty, const UObject *InContainer, int32 FixedArrayIndex=0)
Definition UnrealType.h:4571
UE_FORCEINLINE_HINT FScriptArrayHelper_InContainer(const FArrayProperty *InProperty, const void *InContainer, int32 FixedArrayIndex=0)
Definition UnrealType.h:4566
Definition UnrealType.h:4175
int32 AddUninitializedValues(int32 Count)
Definition UnrealType.h:4340
void EmptyAndAddUninitializedValues(int32 Count)
Definition UnrealType.h:4271
void EmptyValues(int32 Slack=0)
Definition UnrealType.h:4371
UE_FORCEINLINE_HINT uint8 * GetElementPtr(int32 Index=0)
Definition UnrealType.h:4252
FScriptArray * HeapArray
Definition UnrealType.h:4555
void MoveAssign(void *InOtherArray)
Definition UnrealType.h:4424
void CountBytes(FArchive &Ar) const
Definition UnrealType.h:4436
void SwapValues(int32 A, int32 B)
Definition UnrealType.h:4414
UE_FORCEINLINE_HINT int32 AddValue()
Definition UnrealType.h:4331
int32 Num() const
Definition UnrealType.h:4215
void ClearValues(int32 Index, int32 Count=1)
Definition UnrealType.h:4402
int32 AddValues(int32 Count)
Definition UnrealType.h:4321
bool ExpandForIndex(int32 Index)
Definition UnrealType.h:4284
uint8 * GetRawPtr(int32 Index=0)
Definition UnrealType.h:4236
void DestroyContainer_Unsafe()
Definition UnrealType.h:4444
void EmptyAndAddValues(int32 Count)
Definition UnrealType.h:4260
void InsertValues(int32 Index, int32 Count=1)
Definition UnrealType.h:4360
UE_FORCEINLINE_HINT FScriptArrayHelper(const FArrayProperty *InProperty, const void *InArray)
Definition UnrealType.h:4197
UE_FORCEINLINE_HINT bool IsValidIndex(int32 Index) const
Definition UnrealType.h:4207
int32 NumUnchecked() const
Definition UnrealType.h:4226
static FScriptArrayHelper CreateHelperFormInnerProperty(const FProperty *InInnerProperty, const void *InArray, EArrayPropertyFlags InArrayFlags=EArrayPropertyFlags::None)
Definition UnrealType.h:4449
FFreezableScriptArray * FreezableArray
Definition UnrealType.h:4556
void Resize(int32 Count)
Definition UnrealType.h:4299
UE_FORCEINLINE_HINT int32 AddUninitializedValue()
Definition UnrealType.h:4351
void RemoveValues(int32 Index, int32 Count=1)
Definition UnrealType.h:4389
Definition ScriptArray.h:328
Definition UnrealType.h:5659
UE_FORCEINLINE_HINT FScriptMapHelper_InContainer(const FMapProperty *InProperty, const void *InArray, int32 FixedArrayIndex=0)
Definition UnrealType.h:5661
Definition UnrealType.h:4678
FProperty * ValueProp
Definition UnrealType.h:5648
void RemoveAt(int32 InternalIndex, int32 Count=1)
Definition UnrealType.h:5090
FScriptMapHelper(FProperty *InKeyProp, FProperty *InValueProp, const void *InMap, const FScriptMapLayout &InMapLayout, EMapPropertyFlags InMapFlags)
Definition UnrealType.h:4708
uint8 * GetKeyPtr(const FIterator Iterator)
Definition UnrealType.h:4893
uint8 * GetValuePtr(const FIterator Iterator)
Definition UnrealType.h:4923
UE_FORCEINLINE_HINT const uint8 * GetPairPtr(const int32 InternalIndex) const
Definition UnrealType.h:4805
void MoveAssign(void *InOtherMap)
Definition UnrealType.h:4998
uint8 * FindValueFromHash(const void *KeyPtr)
Definition UnrealType.h:5306
EMapPropertyFlags MapFlags
Definition UnrealType.h:5655
int32 FindMapIndexWithKey(const void *PairWithKeyToFind, int32 IndexHint=0) const
Definition UnrealType.h:5222
int32 NumUnchecked() const
Definition UnrealType.h:4754
uint8 * GetPairPtr(const FIterator Iterator)
Definition UnrealType.h:4863
uint8 * FindNthKeyPtr(int32 N)
Definition UnrealType.h:4962
uint8 * GetValuePtr(int32 InternalIndex)
Definition UnrealType.h:4841
UE_FORCEINLINE_HINT const uint8 * GetPairPtr(const FIterator Iterator) const
Definition UnrealType.h:4879
uint8 * FindMapPairPtrFromHash(const void *KeyPtr)
Definition UnrealType.h:5298
uint8 * FindNthValuePtr(int32 N)
Definition UnrealType.h:4974
int32 FindLogicalIndex(int32 InternalIdx) const
Definition UnrealType.h:5185
int32 GetMaxIndex() const
Definition UnrealType.h:4766
FScriptMapLayout MapLayout
Definition UnrealType.h:5654
const uint8 * FindNthPairPtr(int32 N) const
Definition UnrealType.h:4986
uint8 * FindMapPairPtrWithKey(const void *PairWithKeyToFind, int32 IndexHint=0)
Definition UnrealType.h:5275
FIterator CreateIterator() const
Definition UnrealType.h:4715
uint8 * FindNthPairPtr(int32 N)
Definition UnrealType.h:4950
int32 FindMapPairIndexFromHash(const void *KeyPtr)
Definition UnrealType.h:5283
int32 FindInternalIndex(int32 LogicalIdx) const
Definition UnrealType.h:5148
void * FindOrAdd(const void *KeyPtr)
Definition UnrealType.h:5386
int32 AddDefaultValue_Invalid_NeedsRehash()
Definition UnrealType.h:5052
bool RemovePair(const void *KeyPtr)
Definition UnrealType.h:5423
FIterator CreateIterator(const int32 InLogicalIndex) const
Definition UnrealType.h:4720
int32 AddUninitializedValue()
Definition UnrealType.h:5014
FProperty * GetKeyProperty() const
Definition UnrealType.h:5070
UE_FORCEINLINE_HINT const uint8 * GetValuePtr(const FIterator Iterator) const
Definition UnrealType.h:4939
FProperty * KeyProp
Definition UnrealType.h:5647
UE_FORCEINLINE_HINT bool IsValidIndex(int32 InternalIndex) const
Definition UnrealType.h:4732
static FScriptMapHelper CreateHelperFormInnerProperties(FProperty *InKeyProperty, FProperty *InValProperty, const void *InMap, EMapPropertyFlags InMapFlags=EMapPropertyFlags::None)
Definition UnrealType.h:5445
void EmptyValues(int32 Slack=0)
Definition UnrealType.h:5028
FProperty * GetValueProperty() const
Definition UnrealType.h:5080
uint8 * GetKeyPtr(int32 InternalIndex)
Definition UnrealType.h:4819
UE_FORCEINLINE_HINT const uint8 * GetKeyPtr(const FIterator Iterator) const
Definition UnrealType.h:4911
FFreezableScriptMap * FreezableMap
Definition UnrealType.h:5652
FScriptMap * HeapMap
Definition UnrealType.h:5651
uint8 * GetPairPtr(int32 InternalIndex)
Definition UnrealType.h:4783
int32 Num() const
Definition UnrealType.h:4742
FScriptMapHelper(const FMapProperty *InProperty, const void *InMap)
Definition UnrealType.h:4703
void AddPair(const void *KeyPtr, const void *ValuePtr)
Definition UnrealType.h:5320
Definition UnrealType.h:6289
UE_FORCEINLINE_HINT FScriptSetHelper_InContainer(const FSetProperty *InProperty, const void *InArray, int32 FixedArrayIndex=0)
Definition UnrealType.h:6291
Definition UnrealType.h:5682
FScriptSetHelper(FProperty *InElementProp, const void *InSet, const FScriptSetLayout &InLayout)
Definition UnrealType.h:5710
UE_FORCEINLINE_HINT const uint8 * GetElementPtr(int32 InternalIndex) const
Definition UnrealType.h:5805
FScriptSetHelper(const FSetProperty *InProperty, const void *InSet)
Definition UnrealType.h:5705
int32 FindElementIndex(const void *ElementToFind, int32 IndexHint=0) const
Definition UnrealType.h:6048
uint8 * FindElementPtrFromHash(const void *ElementToFind)
Definition UnrealType.h:6118
FProperty * ElementProp
Definition UnrealType.h:6283
int32 AddDefaultValue_Invalid_NeedsRehash()
Definition UnrealType.h:5909
int32 AddUninitializedValue()
Definition UnrealType.h:5877
static int32 Num(const void *Target)
Definition UnrealType.h:5772
uint8 * GetElementPtr(const FIterator Iterator)
Definition UnrealType.h:5817
uint8 * FindElementPtr(const void *ElementToFind, int32 IndexHint=0)
Definition UnrealType.h:6098
int32 FindInternalIndex(int32 LogicalIdx) const
Definition UnrealType.h:5982
FScriptSet * Set
Definition UnrealType.h:6284
void AddElement(const void *ElementToAdd)
Definition UnrealType.h:6126
FIterator CreateIterator() const
Definition UnrealType.h:5689
void MoveAssign(void *InOtherSet)
Definition UnrealType.h:5865
bool RemoveElement(const void *ElementToRemove)
Definition UnrealType.h:6159
int32 Num() const
Definition UnrealType.h:5735
FScriptSetLayout SetLayout
Definition UnrealType.h:6285
int32 GetMaxIndex() const
Definition UnrealType.h:5758
void EmptyElements(int32 Slack=0)
Definition UnrealType.h:5888
int32 NumUnchecked() const
Definition UnrealType.h:5747
uint8 * FindNthElementPtr(int32 N)
Definition UnrealType.h:5841
FProperty * GetElementProperty() const
Definition UnrealType.h:5922
void RemoveAt(int32 InternalIndex, int32 Count=1)
Definition UnrealType.h:5932
int32 FindElementIndexFromHash(const void *ElementToFind) const
Definition UnrealType.h:6106
int32 FindLogicalIndex(int32 InternalIdx) const
Definition UnrealType.h:6015
uint8 * GetElementPtr(int32 InternalIndex)
Definition UnrealType.h:5786
UE_FORCEINLINE_HINT bool IsValidIndex(int32 InternalIndex) const
Definition UnrealType.h:5725
UE_FORCEINLINE_HINT const uint8 * GetElementPtr(const FIterator Iterator) const
Definition UnrealType.h:5830
static FScriptSetHelper CreateHelperFormElementProperty(FProperty *InElementProperty, const void *InSet)
Definition UnrealType.h:6179
FIterator CreateIterator(const int32 InLogicalIndex) const
Definition UnrealType.h:5694
const uint8 * FindNthElementPtr(int32 N) const
Definition UnrealType.h:5853
Definition SerializedPropertyScope.h:13
Definition UnrealType.h:4028
int32 GetStride() const
Definition UnrealType.h:4130
const FProperty * GetElementProperty() const
Definition UnrealType.h:4155
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:4036
int32 GetNum(void *InSet) const
Definition UnrealType.h:4120
TTypeFundamentals::TCppType TCppType
Definition UnrealType.h:4037
bool IsValidIndex(void *InSet, int32 InternalIndex) const
Definition UnrealType.h:4139
uint8 * GetElementPtr(void *InSet, int32 InternalIndex) const
Definition UnrealType.h:4149
Definition UnrealType.h:3488
UE_FORCEINLINE_HINT void SetMetaClass(UClass *NewMetaClass)
Definition UnrealType.h:3547
Definition UnrealType.h:3331
Definition UnrealType.h:6306
Definition StructuredArchiveSlots.h:52
UE_API FStructuredArchiveStream EnterStream()
Definition StructuredArchiveSlots.h:263
Definition StructuredArchiveSlots.h:193
Definition UnrealType.h:2368
Definition UnrealType.h:2400
Definition UnrealType.h:2432
Definition UnrealType.h:3204
Definition ArrayView.h:139
Definition EnumAsByte.h:22
Definition UnrealType.h:3008
virtual bool ContainsObjectReference(TArray< const FStructProperty * > &EncounteredStructProps, EPropertyObjectReferenceType InReferenceType=EPropertyObjectReferenceType::Strong) const override
Definition UnrealType.h:3067
InTCppType TCppType
Definition UnrealType.h:3011
TFObjectPropertyBase(FFieldVariant InOwner, const UECodeGen_Private::FObjectPropertyParamsWithoutClass &Prop, UClass *InClass)
Definition UnrealType.h:3041
TProperty< InTCppType, FObjectPropertyBase > Super
Definition UnrealType.h:3010
TFObjectPropertyBase(FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
Definition UnrealType.h:3019
TFObjectPropertyBase(FFieldVariant InOwner, const UECodeGen_Private::FObjectPropertyParams &Prop)
Definition UnrealType.h:3030
TFObjectPropertyBase(EInternal InInernal, FFieldClass *InClass)
Definition UnrealType.h:3014
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:3012
Definition UnrealType.h:7083
TFieldIterator(const UStruct *InStruct, EFieldIterationFlags InIterationFlags=EFieldIterationFlags::Default)
Definition UnrealType.h:7099
TFieldIterator(const UStruct *InStruct, EFieldIteratorFlags::SuperClassFlags InSuperClassFlags, EFieldIteratorFlags::DeprecatedPropertyFlags InDeprecatedFieldFlags=EFieldIteratorFlags::IncludeDeprecated, EFieldIteratorFlags::InterfaceClassFlags InInterfaceFieldFlags=EFieldIteratorFlags::ExcludeInterfaces)
Definition UnrealType.h:7111
bool operator==(const TFieldIterator< T > &Rhs) const
Definition UnrealType.h:7130
const T * operator*() const
Definition UnrealType.h:7144
T * operator*()
Definition UnrealType.h:7139
void operator++()
Definition UnrealType.h:7133
bool operator!=(const TFieldIterator< T > &Rhs) const
Definition UnrealType.h:7131
const UStruct * GetStruct()
Definition UnrealType.h:7154
void IterateToNext()
Definition UnrealType.h:7159
T * operator->()
Definition UnrealType.h:7149
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition ScriptDelegates.h:509
Definition UnrealType.h:1446
static UE_FORCEINLINE_HINT void SetPropertyValue(void *A, TCppType const &Value)
Definition UnrealType.h:1487
static UE_FORCEINLINE_HINT bool HasIntrusiveUnsetOptionalState()
Definition UnrealType.h:1502
static UE_FORCEINLINE_HINT TCppType const & GetPropertyValue(void const *A)
Definition UnrealType.h:1472
static UE_FORCEINLINE_HINT void DestroyPropertyValue(void *A)
Definition UnrealType.h:1497
static UE_FORCEINLINE_HINT bool IsIntrusiveOptionalValueSet(const void *A)
Definition UnrealType.h:1512
static UE_FORCEINLINE_HINT TCppType GetOptionalPropertyValue(void const *B)
Definition UnrealType.h:1482
static UE_FORCEINLINE_HINT void InitializeIntrusiveUnsetOptionalValue(void *Data)
Definition UnrealType.h:1507
static EPropertyFlags GetComputedFlagsPropertyFlags()
Definition UnrealType.h:1524
static UE_FORCEINLINE_HINT TCppType * InitializePropertyValue(void *A)
Definition UnrealType.h:1492
static UE_FORCEINLINE_HINT void ClearIntrusiveOptionalValue(void *A)
Definition UnrealType.h:1517
static UE_FORCEINLINE_HINT TCppType * GetPropertyValuePtr(void *A)
Definition UnrealType.h:1467
InTCppType TCppType
Definition UnrealType.h:1449
static UE_FORCEINLINE_HINT TCppType const * GetPropertyValuePtr(void const *A)
Definition UnrealType.h:1462
static UE_FORCEINLINE_HINT TCHAR const * GetTypeName()
Definition UnrealType.h:1456
static UE_FORCEINLINE_HINT TCppType GetDefaultPropertyValue()
Definition UnrealType.h:1477
Definition UnrealType.h:7597
UE_FORCEINLINE_HINT const PairType & operator*() const
Definition UnrealType.h:7620
UE_FORCEINLINE_HINT const T * Key() const
Definition UnrealType.h:7631
UE_FORCEINLINE_HINT const PairType * operator->() const
Definition UnrealType.h:7625
TPropertyValueIterator(const UStruct *InStruct, const void *InStructValue, EPropertyValueIteratorFlags InRecursionFlags=EPropertyValueIteratorFlags::FullRecursion, EFieldIteratorFlags::DeprecatedPropertyFlags InDeprecatedPropertyFlags=EFieldIteratorFlags::IncludeDeprecated)
Definition UnrealType.h:7609
TPropertyValueIterator()=default
Definition UnrealType.h:6537
TProperty_MulticastDelegate(EInternal InInernal, FFieldClass *InClass)
Definition UnrealType.h:6554
TProperty_MulticastDelegate(FFieldVariant InOwner, const FName &InName, UFunction *InSignatureFunction=nullptr)
Definition UnrealType.h:6542
TProperty_MulticastDelegate(FFieldVariant InOwner, const UECodeGen_Private::FMulticastDelegatePropertyParams &Prop)
Definition UnrealType.h:6564
TProperty< InTCppType, FMulticastDelegateProperty > Super
Definition UnrealType.h:6539
virtual FString GetCPPType(FString *ExtendedTypeText, uint32 CPPExportFlags) const override
Definition UnrealType.h:6585
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:6541
InTCppType TCppType
Definition UnrealType.h:6540
TProperty_MulticastDelegate(FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
Definition UnrealType.h:6548
Definition UnrealType.h:1902
virtual double GetFloatingPointPropertyValue(void const *Data) const override
Definition UnrealType.h:2135
virtual FString GetNumericPropertyValueToString(void const *Data) const override
Definition UnrealType.h:2101
virtual uint32 GetValueTypeHashInternal(const void *Src) const override
Definition UnrealType.h:1943
virtual int64 GetSignedIntPropertyValue(void const *Data) const override
Definition UnrealType.h:2111
virtual int64 GetSignedIntPropertyValue_InContainer(void const *Container) const override
Definition UnrealType.h:2116
UE_FORCEINLINE_HINT void ConvertFromArithmeticValue(FStructuredArchive::FSlot Slot, void *Obj, const FPropertyTag &Tag) const
Definition UnrealType.h:1950
virtual FString GetNumericPropertyValueToString_InContainer(void const *Container) const override
Definition UnrealType.h:2105
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:1906
virtual void SetIntPropertyValue(void *Data, int64 Value) const override
Definition UnrealType.h:2081
TProperty_Numeric(FFieldVariant InOwner, const UECodeGen_Private::FPropertyParamsBaseWithOffset &Prop)
Definition UnrealType.h:1923
virtual uint64 GetUnsignedIntPropertyValue(void const *Data) const override
Definition UnrealType.h:2123
virtual void SetIntPropertyValue(void *Data, uint64 Value) const override
Definition UnrealType.h:2076
virtual uint64 GetUnsignedIntPropertyValue_InContainer(void const *Container) const override
Definition UnrealType.h:2128
InTCppType TCppType
Definition UnrealType.h:1905
virtual EConvertFromTypeResult ConvertFromType(const FPropertyTag &Tag, FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults) override
Definition UnrealType.h:1992
virtual bool IsFloatingPoint() const override
Definition UnrealType.h:2068
TProperty_WithEqualityAndSerializer< InTCppType, FNumericProperty > Super
Definition UnrealType.h:1904
virtual void SetNumericPropertyValueFromString(void *Data, TCHAR const *Value) const override
Definition UnrealType.h:2091
virtual void SetFloatingPointPropertyValue(void *Data, double Value) const override
Definition UnrealType.h:2086
TProperty_Numeric(FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
Definition UnrealType.h:1913
virtual void SetNumericPropertyValueFromString_InContainer(void *Container, TCHAR const *Value) const override
Definition UnrealType.h:2095
virtual bool IsInteger() const override
Definition UnrealType.h:2072
TProperty_Numeric(EInternal InInernal, FFieldClass *InClass)
Definition UnrealType.h:1908
Definition UnrealType.h:1694
TProperty_WithEqualityAndSerializer(FFieldVariant InOwner, const UECodeGen_Private::FPropertyParamsBaseWithOffset &Prop)
Definition UnrealType.h:1716
TProperty_WithEqualityAndSerializer(EInternal InInernal, FFieldClass *InClass)
Definition UnrealType.h:1701
InTCppType TCppType
Definition UnrealType.h:1698
virtual bool Identical(const void *A, const void *B, uint32 PortFlags=0) const override
Definition UnrealType.h:1740
TProperty_WithEqualityAndSerializer(FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
Definition UnrealType.h:1706
Super::TTypeFundamentals TTypeFundamentals
Definition UnrealType.h:1699
TProperty< InTCppType, TInPropertyBaseClass > Super
Definition UnrealType.h:1697
virtual void SerializeItem(FStructuredArchive::FSlot Slot, void *Value, void const *Defaults) const override
Definition UnrealType.h:1757
Definition UnrealType.h:1538
virtual void InitializeValueInternal(void *Dest) const override
Definition UnrealType.h:1619
UE_FORCEINLINE_HINT TCppType const & GetPropertyValue_InContainer(void const *A, int32 ArrayIndex=0) const
Definition UnrealType.h:1645
virtual void CopyValuesInternal(void *Dest, void const *Src, int32 Count) const override
Definition UnrealType.h:1608
virtual void ClearIntrusiveOptionalValue(void *Data) const override
Definition UnrealType.h:1685
UE_FORCEINLINE_HINT TCppType const * GetPropertyValuePtr_InContainer(void const *A, int32 ArrayIndex=0) const
Definition UnrealType.h:1635
virtual void LinkInternal(FArchive &Ar) override
Definition UnrealType.h:1602
InTCppType TCppType
Definition UnrealType.h:1541
TProperty(FFieldVariant InOwner, PropertyParamsType &Prop)
Definition UnrealType.h:1562
virtual bool IsIntrusiveOptionalValueSet(const void *Data) const override
Definition UnrealType.h:1680
virtual FString GetCPPType(FString *ExtendedTypeText=NULL, uint32 CPPExportFlags=0) const override
Definition UnrealType.h:1591
UE_FORCEINLINE_HINT TCppType GetOptionalPropertyValue_InContainer(void const *B, int32 ArrayIndex=0) const
Definition UnrealType.h:1650
TPropertyTypeFundamentals< InTCppType > TTypeFundamentals
Definition UnrealType.h:1543
virtual void ClearValueInternal(void *Data) const override
Definition UnrealType.h:1615
virtual void DestroyValueInternal(void *Dest) const override
Definition UnrealType.h:1626
virtual void InitializeIntrusiveUnsetOptionalValue(void *Data) const override
Definition UnrealType.h:1675
virtual bool HasIntrusiveUnsetOptionalState() const override
Definition UnrealType.h:1670
TProperty(FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
Definition UnrealType.h:1550
virtual int32 GetMinAlignment() const override
Definition UnrealType.h:1598
UE_FORCEINLINE_HINT void GetValue_InContainer(void const *InContainer, TCppType *OutValue) const
Definition UnrealType.h:1665
UE_FORCEINLINE_HINT void SetPropertyValue_InContainer(void *A, TCppType const &Value, int32 ArrayIndex=0) const
Definition UnrealType.h:1655
UE_FORCEINLINE_HINT TCppType * GetPropertyValuePtr_InContainer(void *A, int32 ArrayIndex=0) const
Definition UnrealType.h:1640
UE_FORCEINLINE_HINT void SetValue_InContainer(void *OutContainer, const TCppType &InValue) const
Definition UnrealType.h:1660
TProperty(EInternal InInernal, FFieldClass *InClass)
Definition UnrealType.h:1545
TInPropertyBaseClass Super
Definition UnrealType.h:1542
Definition ScriptArray.h:21
Definition ScriptDelegates.h:66
static constexpr FScriptMapLayout GetScriptLayout(int32 KeySize, int32 KeyAlignment, int32 ValueSize, int32 ValueAlignment)
Definition Map.h:156
Definition ScriptSparseSet.h:26
void * GetData(int32 Index, const FScriptSparseSetLayout &Layout)
Definition ScriptSparseSet.h:104
int32 Num() const
Definition ScriptSparseSet.h:83
static constexpr FScriptSparseSetLayout GetScriptLayout(int32 ElementSize, int32 ElementAlignment)
Definition ScriptSparseSet.h:28
bool IsValidIndex(int32 Index) const
Definition ScriptSparseSet.h:68
Definition SharedPointer.h:692
Definition UnrealType.h:1384
static void Unsafe_AlterOffset(FProperty &Property, const int32 OffsetOverride)
Definition UnrealType.h:1394
Definition PropertyTypeName.h:151
Definition PropertyTypeName.h:46
Definition GarbageCollectionSchema.h:62
Definition GarbageCollectionSchema.h:265
CORE_API FArchive & GetUnderlyingArchive() const
Definition StructuredArchiveSlots.cpp:7
FORCEINLINE UObject * GetOuter() const
Definition UObjectBase.h:223
FORCEINLINE UClass * GetClass() const
Definition UObjectBase.h:217
bool IsBasedOnArchetype(const UObject *const SomeObject) const
Definition UnrealType.h:7665
COREUOBJECT_API UObject * GetArchetype() const
Definition UObjectArchetype.cpp:283
Definition PropertyWrapper.h:23
virtual UStruct * GetInheritanceSuper() const
Definition Class.h:659
Definition UnrealType.h:7038
SuperClassFlags
Definition UnrealType.h:7040
InterfaceClassFlags
Definition UnrealType.h:7052
@ ExcludeInterfaces
Definition UnrealType.h:7053
DeprecatedPropertyFlags
Definition UnrealType.h:7046
@ IncludeDeprecated
Definition UnrealType.h:7048
@ ExcludeDeprecated
Definition UnrealType.h:7047
Definition UnrealType.h:6834
const Type ArrayMove
Definition UnrealType.h:6854
const Type ResetToDefault
Definition UnrealType.h:6858
const Type ArrayAdd
Definition UnrealType.h:6840
const Type ValueSet
Definition UnrealType.h:6846
const Type ArrayRemove
Definition UnrealType.h:6842
const Type Redirected
Definition UnrealType.h:6852
const Type ArrayClear
Definition UnrealType.h:6844
const Type Unspecified
Definition UnrealType.h:6838
const Type ToggleEditable
Definition UnrealType.h:6856
uint32 Type
Definition UnrealType.h:6835
Definition FieldSystemNoiseAlgo.cpp:6
Definition UnrealType.h:151
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
Definition CoreGlobals.cpp:268
void ExportEnumToBuffer(const UEnum *Enum, const FProperty *Prop, const FNumericProperty *NumericProp, FString &ValueStr, const void *PropertyValueOrContainer, EPropertyPointerType PropertyPointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope)
Definition EnumProperty.cpp:129
const TCHAR * ImportEnumFromBuffer(UEnum *Enum, const FProperty *PropertyToSet, const FNumericProperty *UnderlyingProp, const TCHAR *PropertyClassName, const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, FOutputDevice *ErrorText)
Definition EnumProperty.cpp:50
ENonNullableBehavior
Definition UnrealType.h:92
@ CreateDefaultObjectIfPossible
ENonNullableBehavior GetNonNullableBehavior()
Definition PropertyBaseObject.cpp:31
Definition GCObjectReferencer.cpp:27
FORCEINLINE UE_STRING_CLASS RhsType && Rhs
Definition String.cpp.inl:718
EPropertyBagResult GetPropertyValue(const FPropertyBagPropertyDesc *Desc, const void *Address, T &OutValue)
Definition PropertyBag.cpp:761
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition GetTypeHashable.h:11
Definition UnrealType.h:6698
FProperty * Property
Definition UnrealType.h:6700
int32 ArrayIndex
Definition UnrealType.h:6703
static FProperty * GetNextPropertyAndAdvance(const FCustomPropertyListNode *&Node)
Definition UnrealType.h:6721
struct FCustomPropertyListNode * PropertyListNext
Definition UnrealType.h:6709
struct FCustomPropertyListNode * SubPropertyList
Definition UnrealType.h:6706
FCustomPropertyListNode(FProperty *InProperty=nullptr, int32 InArrayIndex=0)
Definition UnrealType.h:6712
Definition UnrealType.h:1403
FProperty * Property
Definition UnrealType.h:1404
int32 Index
Definition UnrealType.h:1405
Definition UnrealMemory.h:94
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
Definition UnrealType.h:7001
FEditPropertyChain & PropertyChain
Definition UnrealType.h:7007
FPropertyChangedChainEvent(FEditPropertyChain &InPropertyChain, const FPropertyChangedEvent &SrcChangeEvent)
Definition UnrealType.h:7002
Definition UnrealType.h:6865
FName GetMemberPropertyName() const
Definition UnrealType.h:6962
int32 ObjectIteratorIndex
Definition UnrealType.h:6982
FProperty * MemberProperty
Definition UnrealType.h:6976
int32 GetNumObjectsBeingEdited() const
Definition UnrealType.h:6941
const UObject * GetObjectBeingEdited(int32 Index) const
Definition UnrealType.h:6949
void SetActiveMemberProperty(FProperty *InActiveMemberProperty)
Definition UnrealType.h:6876
FProperty * Property
Definition UnrealType.h:6970
void SetInstancesChanged(T &&InInstancesChanged)
Definition UnrealType.h:6893
bool GetArrayIndicesPerObject(int32 InObjectIteratorIndex, TMap< FString, int32 > &OutArrayIndicesPerObject) const
Definition UnrealType.h:6899
FName GetPropertyName() const
Definition UnrealType.h:6954
bool HasArchetypeInstanceChanged(UObject *InInstance) const
Definition UnrealType.h:6933
FPropertyChangedEvent(FProperty *InProperty, EPropertyChangeType::Type InChangeType=EPropertyChangeType::Unspecified, TArrayView< const UObject *const > InTopLevelObjects=TArrayView< const UObject *const >())
Definition UnrealType.h:6866
int32 GetArrayIndex(const FString &InName) const
Definition UnrealType.h:6914
EPropertyChangeType::Type ChangeType
Definition UnrealType.h:6979
void SetArrayIndexPerObject(TArrayView< const TMap< FString, int32 > > InArrayIndices)
Definition UnrealType.h:6884
Definition PropertyTag.h:38
Definition PropertyVisitor.h:268
Definition PropertyVisitor.h:249
Definition PropertyVisitor.h:32
Definition PropertyVisitor.h:97
FScriptSetLayout SetLayout
Definition Map.h:144
int32 ValueOffset
Definition Map.h:142
Definition ScriptSparseSet.h:13
int32 Size
Definition ScriptSparseSet.h:17
Definition TopLevelAssetPath.h:38
Definition UObjectThreadContext.h:140
Definition UnrealType.h:7223
friend TFieldIterator< T > begin(const TFieldRange &Range)
Definition UnrealType.h:7238
TFieldIterator< T > Begin
Definition UnrealType.h:7241
TFieldRange(const UStruct *InStruct, EFieldIteratorFlags::SuperClassFlags InSuperClassFlags, EFieldIteratorFlags::DeprecatedPropertyFlags InDeprecatedFieldFlags=EFieldIteratorFlags::IncludeDeprecated, EFieldIteratorFlags::InterfaceClassFlags InInterfaceFieldFlags=EFieldIteratorFlags::ExcludeInterfaces)
Definition UnrealType.h:7230
TFieldRange(const UStruct *InStruct, EFieldIterationFlags InIterationFlags=EFieldIterationFlags::Default)
Definition UnrealType.h:7224
friend TFieldIterator< T > end(const TFieldRange &Range)
Definition UnrealType.h:7239
Definition IsPODType.h:12
Definition SoftObjectPtr.h:33
Definition UnrealTypeTraits.h:181
Definition UnrealTypeTraits.h:172
Definition LinkedListBuilder.h:212
static TCHAR const * GetName()
Definition UnrealTypeTraits.h:192
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition UnrealType.h:7640
friend TPropertyValueIterator< T > begin(const TPropertyValueRange &Range)
Definition UnrealType.h:7656
friend TPropertyValueIterator< T > end(const TPropertyValueRange &Range)
Definition UnrealType.h:7657
TPropertyValueIterator< T > Begin
Definition UnrealType.h:7659
TPropertyValueRange(const UStruct *InStruct, const void *InStructValue, EPropertyValueIteratorFlags InRecursionFlags=EPropertyValueIteratorFlags::FullRecursion, EFieldIteratorFlags::DeprecatedPropertyFlags InDeprecatedPropertyFlags=EFieldIteratorFlags::IncludeDeprecated)
Definition UnrealType.h:7649
Definition UnrealType.h:4588
TScriptContainerIterator(const ContainerType &InContainer, const int32 InLogicalIndex)
Definition UnrealType.h:4594
TScriptContainerIterator & operator++()
Definition UnrealType.h:4611
TScriptContainerIterator(const ContainerType &InContainer)
Definition UnrealType.h:4589
TScriptContainerIterator operator++(int)
Definition UnrealType.h:4617
int32 GetLogicalIndex() const
Definition UnrealType.h:4634
int32 GetInternalIndex() const
Definition UnrealType.h:4629