You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
646 lines
28 KiB
C++
646 lines
28 KiB
C++
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "PropertyArchiveProxy.h"
|
|
#include "UnrealHeaderTool.h"
|
|
#include "UHTMakefile.h"
|
|
|
|
FPropertyArchiveProxy::FPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UProperty* Property)
|
|
: FFieldArchiveProxy(UHTMakefile, Property)
|
|
{
|
|
ArrayDim = Property->ArrayDim;
|
|
ElementSize = Property->ElementSize;
|
|
PropertyFlags = Property->PropertyFlags;
|
|
RepIndex = Property->RepIndex;
|
|
RepNotifyFunc = FNameArchiveProxy(UHTMakefile, Property->RepNotifyFunc);
|
|
Offset_Internal = Property->Offset_Internal;
|
|
PropertyLinkNextIndex = UHTMakefile.GetPropertyIndex(Property->PropertyLinkNext);
|
|
NextRefIndex = UHTMakefile.GetPropertyIndex(Property->NextRef);
|
|
DestructorLinkNextIndex = UHTMakefile.GetPropertyIndex(Property->DestructorLinkNext);
|
|
PostConstructLinkNextIndex = UHTMakefile.GetPropertyIndex(Property->PostConstructLinkNext);
|
|
}
|
|
|
|
UProperty* FPropertyArchiveProxy::CreateProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UProperty* Property = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UProperty(FObjectInitializer());
|
|
PostConstruct(Property, UHTMakefile);
|
|
return Property;
|
|
}
|
|
|
|
void FPropertyArchiveProxy::Resolve(UProperty* Property, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FFieldArchiveProxy::Resolve(Property, UHTMakefile);
|
|
Property->PropertyLinkNext = UHTMakefile.GetPropertyByIndex(PropertyLinkNextIndex);
|
|
Property->NextRef = UHTMakefile.GetPropertyByIndex(NextRefIndex);
|
|
Property->DestructorLinkNext = UHTMakefile.GetPropertyByIndex(DestructorLinkNextIndex);
|
|
Property->PostConstructLinkNext = UHTMakefile.GetPropertyByIndex(PostConstructLinkNextIndex);
|
|
}
|
|
|
|
void FPropertyArchiveProxy::AddReferencedNames(const UProperty* Property, FUHTMakefile& UHTMakefile)
|
|
{
|
|
FFieldArchiveProxy::AddReferencedNames(Property, UHTMakefile);
|
|
UHTMakefile.AddName(Property->RepNotifyFunc);
|
|
}
|
|
|
|
void FPropertyArchiveProxy::PostConstruct(UProperty* Property, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
Property->ArrayDim = ArrayDim;
|
|
Property->ElementSize = ElementSize;
|
|
Property->PropertyFlags = PropertyFlags;
|
|
Property->RepIndex = RepIndex;
|
|
Property->RepNotifyFunc = RepNotifyFunc.CreateName(UHTMakefile);
|
|
Property->Offset_Internal = Offset_Internal;
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FPropertyArchiveProxy& PropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FFieldArchiveProxy&>(PropertyArchiveProxy);
|
|
Ar << PropertyArchiveProxy.ArrayDim;
|
|
Ar << PropertyArchiveProxy.ElementSize;
|
|
Ar << PropertyArchiveProxy.PropertyFlags;
|
|
Ar << PropertyArchiveProxy.RepIndex;
|
|
Ar << PropertyArchiveProxy.RepNotifyFunc;
|
|
Ar << PropertyArchiveProxy.Offset_Internal;
|
|
Ar << PropertyArchiveProxy.PropertyLinkNextIndex;
|
|
Ar << PropertyArchiveProxy.NextRefIndex;
|
|
Ar << PropertyArchiveProxy.DestructorLinkNextIndex;
|
|
Ar << PropertyArchiveProxy.PostConstructLinkNextIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FArrayPropertyArchiveProxy& ArrayPropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(ArrayPropertyArchiveProxy);
|
|
Ar << ArrayPropertyArchiveProxy.InnerIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FMapPropertyArchiveProxy& MapPropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(MapPropertyArchiveProxy);
|
|
Ar << MapPropertyArchiveProxy.KeyPropIndex;
|
|
Ar << MapPropertyArchiveProxy.ValuePropIndex;
|
|
Ar << MapPropertyArchiveProxy.MapLayout;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FSetPropertyArchiveProxy& SetPropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(SetPropertyArchiveProxy);
|
|
Ar << SetPropertyArchiveProxy.ElementPropIndex;
|
|
Ar << SetPropertyArchiveProxy.SetLayout;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FEnumPropertyArchiveProxy::FEnumPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UEnumProperty* EnumProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, EnumProperty)
|
|
{
|
|
EnumIndex = UHTMakefile.GetEnumIndex(EnumProperty->Enum);
|
|
UnderlyingPropertyIndex = UHTMakefile.GetPropertyIndex(EnumProperty->UnderlyingProp);
|
|
}
|
|
|
|
UEnumProperty* FEnumPropertyArchiveProxy::CreateEnumProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UEnumProperty* EnumProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UEnumProperty(FObjectInitializer());
|
|
PostConstruct(EnumProperty, UHTMakefile);
|
|
return EnumProperty;
|
|
}
|
|
|
|
void FEnumPropertyArchiveProxy::Resolve(UEnumProperty* EnumProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(EnumProperty, UHTMakefile);
|
|
EnumProperty->Enum = UHTMakefile.GetEnumByIndex(EnumIndex);
|
|
EnumProperty->UnderlyingProp = CastChecked<UNumericProperty>(UHTMakefile.GetPropertyByIndex(UnderlyingPropertyIndex));
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FEnumPropertyArchiveProxy& EnumPropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(EnumPropertyArchiveProxy);
|
|
Ar << EnumPropertyArchiveProxy.EnumIndex;
|
|
Ar << EnumPropertyArchiveProxy.UnderlyingPropertyIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FBytePropertyArchiveProxy::FBytePropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UByteProperty* ByteProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, ByteProperty)
|
|
{
|
|
EnumIndex = UHTMakefile.GetEnumIndex(ByteProperty->Enum);
|
|
}
|
|
|
|
UByteProperty* FBytePropertyArchiveProxy::CreateByteProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UByteProperty* ByteProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UByteProperty(FObjectInitializer());
|
|
PostConstruct(ByteProperty, UHTMakefile);
|
|
return ByteProperty;
|
|
}
|
|
|
|
void FBytePropertyArchiveProxy::Resolve(UByteProperty* ByteProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(ByteProperty, UHTMakefile);
|
|
ByteProperty->Enum = UHTMakefile.GetEnumByIndex(EnumIndex);
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FBytePropertyArchiveProxy& BytePropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(BytePropertyArchiveProxy);
|
|
Ar << BytePropertyArchiveProxy.EnumIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FObjectPropertyBaseArchiveProxy::FObjectPropertyBaseArchiveProxy(FUHTMakefile& UHTMakefile, const UObjectPropertyBase* ObjectPropertyBase)
|
|
: FPropertyArchiveProxy(UHTMakefile, ObjectPropertyBase)
|
|
{
|
|
PropertyClassIndex = UHTMakefile.GetClassIndex(ObjectPropertyBase->PropertyClass);
|
|
}
|
|
|
|
UObjectPropertyBase* FObjectPropertyBaseArchiveProxy::CreateObjectPropertyBase(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UObjectPropertyBase* ObjectPropertyBase = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UObjectPropertyBase(FObjectInitializer());
|
|
PostConstruct(ObjectPropertyBase, UHTMakefile);
|
|
return ObjectPropertyBase;
|
|
}
|
|
|
|
void FObjectPropertyBaseArchiveProxy::Resolve(UObjectPropertyBase* ObjectPropertyBase, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(ObjectPropertyBase, UHTMakefile);
|
|
ObjectPropertyBase->PropertyClass = UHTMakefile.GetClassByIndex(PropertyClassIndex);
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FObjectPropertyBaseArchiveProxy& ObjectPropertyBaseArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(ObjectPropertyBaseArchiveProxy);
|
|
Ar << ObjectPropertyBaseArchiveProxy.PropertyClassIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FInt8PropertyArchiveProxy::FInt8PropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UInt8Property* Int8Property)
|
|
: FPropertyArchiveProxy(UHTMakefile, Int8Property)
|
|
{ }
|
|
|
|
UInt8Property* FInt8PropertyArchiveProxy::CreateInt8Property(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UInt8Property* Int8Property = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UInt8Property(FObjectInitializer());
|
|
PostConstruct(Int8Property, UHTMakefile);
|
|
return Int8Property;
|
|
}
|
|
|
|
FInt16PropertyArchiveProxy::FInt16PropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UInt16Property* Int16Property)
|
|
: FPropertyArchiveProxy(UHTMakefile, Int16Property)
|
|
{ }
|
|
|
|
UInt16Property* FInt16PropertyArchiveProxy::CreateInt16Property(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UInt16Property* Int16Property = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UInt16Property(FObjectInitializer());
|
|
PostConstruct(Int16Property, UHTMakefile);
|
|
return Int16Property;
|
|
}
|
|
|
|
FIntPropertyArchiveProxy::FIntPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UIntProperty* IntProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, IntProperty)
|
|
{ }
|
|
|
|
UIntProperty* FIntPropertyArchiveProxy::CreateIntProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UIntProperty* IntProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UIntProperty(FObjectInitializer());
|
|
PostConstruct(IntProperty, UHTMakefile);
|
|
return IntProperty;
|
|
}
|
|
|
|
FInt64PropertyArchiveProxy::FInt64PropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UInt64Property* Int64Property)
|
|
: FPropertyArchiveProxy(UHTMakefile, Int64Property)
|
|
{ }
|
|
|
|
UInt64Property* FInt64PropertyArchiveProxy::CreateInt64Property(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UInt64Property* Int64Property = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UInt64Property(FObjectInitializer());
|
|
PostConstruct(Int64Property, UHTMakefile);
|
|
return Int64Property;
|
|
}
|
|
|
|
FUInt16PropertyArchiveProxy::FUInt16PropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UUInt16Property* UInt16Property)
|
|
: FPropertyArchiveProxy(UHTMakefile, UInt16Property)
|
|
{ }
|
|
|
|
UUInt16Property* FUInt16PropertyArchiveProxy::CreateUInt16Property(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UUInt16Property* UInt16Property = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UUInt16Property(FObjectInitializer());
|
|
PostConstruct(UInt16Property, UHTMakefile);
|
|
return UInt16Property;
|
|
}
|
|
|
|
FUInt32PropertyArchiveProxy::FUInt32PropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UUInt32Property* UInt32Property)
|
|
: FPropertyArchiveProxy(UHTMakefile, UInt32Property)
|
|
{ }
|
|
|
|
UUInt32Property* FUInt32PropertyArchiveProxy::CreateUInt32Property(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UUInt32Property* UInt32Property = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UUInt32Property(FObjectInitializer());
|
|
PostConstruct(UInt32Property, UHTMakefile);
|
|
return UInt32Property;
|
|
}
|
|
|
|
FUInt64PropertyArchiveProxy::FUInt64PropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UUInt64Property* UInt64Property)
|
|
: FPropertyArchiveProxy(UHTMakefile, UInt64Property)
|
|
{ }
|
|
|
|
UUInt64Property* FUInt64PropertyArchiveProxy::CreateUInt64Property(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UUInt64Property* UInt64Property = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UUInt64Property(FObjectInitializer());
|
|
PostConstruct(UInt64Property, UHTMakefile);
|
|
return UInt64Property;
|
|
}
|
|
|
|
FFloatPropertyArchiveProxy::FFloatPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UFloatProperty* FloatProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, FloatProperty)
|
|
{ }
|
|
|
|
UFloatProperty* FFloatPropertyArchiveProxy::CreateFloatProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UFloatProperty* FloatProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UFloatProperty(FObjectInitializer());
|
|
PostConstruct(FloatProperty, UHTMakefile);
|
|
return FloatProperty;
|
|
}
|
|
|
|
FDoublePropertyArchiveProxy::FDoublePropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UDoubleProperty* DoubleProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, DoubleProperty)
|
|
{ }
|
|
|
|
UDoubleProperty* FDoublePropertyArchiveProxy::CreateDoubleProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UDoubleProperty* DoubleProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UDoubleProperty(FObjectInitializer());
|
|
PostConstruct(DoubleProperty, UHTMakefile);
|
|
return DoubleProperty;
|
|
}
|
|
|
|
FBoolPropertyArchiveProxy::FBoolPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UBoolProperty* BoolProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, BoolProperty)
|
|
{
|
|
FieldSize = BoolProperty->FieldSize;
|
|
ByteOffset = BoolProperty->ByteOffset;
|
|
ByteMask = BoolProperty->ByteMask;
|
|
FieldMask = BoolProperty->FieldMask;
|
|
}
|
|
|
|
UBoolProperty* FBoolPropertyArchiveProxy::CreateBoolProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UBoolProperty* BoolProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UBoolProperty(FObjectInitializer());
|
|
PostConstruct(BoolProperty, UHTMakefile);
|
|
return BoolProperty;
|
|
}
|
|
|
|
void FBoolPropertyArchiveProxy::PostConstruct(UBoolProperty* BoolProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::PostConstruct(BoolProperty, UHTMakefile);
|
|
BoolProperty->FieldSize = FieldSize;
|
|
BoolProperty->ByteOffset = ByteOffset;
|
|
BoolProperty->ByteMask = ByteMask;
|
|
BoolProperty->FieldMask = FieldMask;
|
|
}
|
|
|
|
FNamePropertyArchiveProxy::FNamePropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UNameProperty* NameProperty) : FPropertyArchiveProxy(UHTMakefile, NameProperty)
|
|
{ }
|
|
|
|
UNameProperty* FNamePropertyArchiveProxy::CreateNameProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UNameProperty* NameProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UNameProperty(FObjectInitializer());
|
|
PostConstruct(NameProperty, UHTMakefile);
|
|
return NameProperty;
|
|
}
|
|
|
|
FStrPropertyArchiveProxy::FStrPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UStrProperty* StrProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, StrProperty)
|
|
{ }
|
|
|
|
UStrProperty* FStrPropertyArchiveProxy::CreateStrProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UStrProperty* StrProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UStrProperty(FObjectInitializer());
|
|
PostConstruct(StrProperty, UHTMakefile);
|
|
return StrProperty;
|
|
}
|
|
|
|
FTextPropertyArchiveProxy::FTextPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UTextProperty* TextProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, TextProperty)
|
|
{ }
|
|
|
|
UTextProperty* FTextPropertyArchiveProxy::CreateTextProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UTextProperty* TextProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UTextProperty(FObjectInitializer());
|
|
PostConstruct(TextProperty, UHTMakefile);
|
|
return TextProperty;
|
|
}
|
|
|
|
FDelegatePropertyArchiveProxy::FDelegatePropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UDelegateProperty* DelegateProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, DelegateProperty)
|
|
{
|
|
SignatureFunctionIndex = UHTMakefile.GetFunctionIndex(DelegateProperty->SignatureFunction);
|
|
}
|
|
|
|
UDelegateProperty* FDelegatePropertyArchiveProxy::CreateDelegateProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UDelegateProperty* DelegateProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UDelegateProperty(FObjectInitializer());
|
|
PostConstruct(DelegateProperty, UHTMakefile);
|
|
return DelegateProperty;
|
|
}
|
|
|
|
void FDelegatePropertyArchiveProxy::Resolve(UDelegateProperty* DelegateProperty, const FUHTMakefile& UHTMakefile)
|
|
{
|
|
FPropertyArchiveProxy::Resolve(DelegateProperty, UHTMakefile);
|
|
DelegateProperty->SignatureFunction = UHTMakefile.GetFunctionByIndex(SignatureFunctionIndex);
|
|
}
|
|
|
|
void FDelegatePropertyArchiveProxy::AddReferencedNames(const UDelegateProperty* Property, FUHTMakefile& UHTMakefile)
|
|
{
|
|
FPropertyArchiveProxy::AddReferencedNames(Property, UHTMakefile);
|
|
}
|
|
|
|
FMulticastDelegatePropertyArchiveProxy::FMulticastDelegatePropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UMulticastDelegateProperty* MulticastDelegateProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, MulticastDelegateProperty)
|
|
{ }
|
|
|
|
UMulticastDelegateProperty* FMulticastDelegatePropertyArchiveProxy::CreateMulticastDelegateProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UMulticastDelegateProperty* MulticastDelegateProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UMulticastDelegateProperty(FObjectInitializer());
|
|
PostConstruct(MulticastDelegateProperty, UHTMakefile);
|
|
return MulticastDelegateProperty;
|
|
}
|
|
|
|
FClassPropertyArchiveProxy::FClassPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UClassProperty* ClassProperty)
|
|
: FObjectPropertyBaseArchiveProxy(UHTMakefile, ClassProperty)
|
|
{
|
|
MetaClassIndex = UHTMakefile.GetClassIndex(ClassProperty->MetaClass);
|
|
}
|
|
|
|
UClassProperty* FClassPropertyArchiveProxy::CreateClassProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UClassProperty* ClassProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UClassProperty(FObjectInitializer());
|
|
PostConstruct(ClassProperty, UHTMakefile);
|
|
return ClassProperty;
|
|
}
|
|
|
|
void FClassPropertyArchiveProxy::Resolve(UClassProperty* ClassProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FObjectPropertyBaseArchiveProxy::Resolve(ClassProperty, UHTMakefile);
|
|
ClassProperty->MetaClass = UHTMakefile.GetClassByIndex(MetaClassIndex);
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FClassPropertyArchiveProxy& ClassPropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(ClassPropertyArchiveProxy);
|
|
Ar << ClassPropertyArchiveProxy.MetaClassIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FObjectPropertyArchiveProxy::FObjectPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UObjectProperty* ObjectProperty)
|
|
: FObjectPropertyBaseArchiveProxy(UHTMakefile, ObjectProperty)
|
|
{ }
|
|
|
|
UObjectProperty* FObjectPropertyArchiveProxy::CreateObjectProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UObjectProperty* ObjectProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UObjectProperty(FObjectInitializer());
|
|
PostConstruct(ObjectProperty, UHTMakefile);
|
|
return ObjectProperty;
|
|
}
|
|
|
|
FWeakObjectPropertyArchiveProxy::FWeakObjectPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UWeakObjectProperty* WeakObjectProperty)
|
|
: FObjectPropertyBaseArchiveProxy(UHTMakefile, WeakObjectProperty)
|
|
{ }
|
|
|
|
UWeakObjectProperty* FWeakObjectPropertyArchiveProxy::CreateWeakObjectProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UWeakObjectProperty* WeakObjectProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UWeakObjectProperty(FObjectInitializer());
|
|
PostConstruct(WeakObjectProperty, UHTMakefile);
|
|
return WeakObjectProperty;
|
|
}
|
|
|
|
FLazyObjectPropertyArchiveProxy::FLazyObjectPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const ULazyObjectProperty* LazyObjectProperty)
|
|
: FObjectPropertyBaseArchiveProxy(UHTMakefile, LazyObjectProperty)
|
|
{ }
|
|
|
|
ULazyObjectProperty* FLazyObjectPropertyArchiveProxy::CreateLazyObjectProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
ULazyObjectProperty* LazyObjectProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) ULazyObjectProperty(FObjectInitializer());
|
|
PostConstruct(LazyObjectProperty, UHTMakefile);
|
|
return LazyObjectProperty;
|
|
}
|
|
|
|
FAssetObjectPropertyArchiveProxy::FAssetObjectPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UAssetObjectProperty* AssetObjectProperty)
|
|
: FObjectPropertyBaseArchiveProxy(UHTMakefile, AssetObjectProperty)
|
|
{ }
|
|
|
|
UAssetObjectProperty* FAssetObjectPropertyArchiveProxy::CreateAssetObjectProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UAssetObjectProperty* AssetObjectProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UAssetObjectProperty(FObjectInitializer());
|
|
PostConstruct(AssetObjectProperty, UHTMakefile);
|
|
return AssetObjectProperty;
|
|
}
|
|
|
|
FAssetClassPropertyArchiveProxy::FAssetClassPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UAssetClassProperty* AssetClassProperty)
|
|
: FObjectPropertyBaseArchiveProxy(UHTMakefile, AssetClassProperty)
|
|
{
|
|
MetaClassIndex = UHTMakefile.GetClassIndex(AssetClassProperty->MetaClass);
|
|
}
|
|
|
|
UAssetClassProperty* FAssetClassPropertyArchiveProxy::CreateAssetClassProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UAssetClassProperty* AssetClassProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UAssetClassProperty(FObjectInitializer());
|
|
PostConstruct(AssetClassProperty, UHTMakefile);
|
|
return AssetClassProperty;
|
|
}
|
|
|
|
void FAssetClassPropertyArchiveProxy::Resolve(UAssetClassProperty* AssetClassProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FObjectPropertyBaseArchiveProxy::Resolve(AssetClassProperty, UHTMakefile);
|
|
AssetClassProperty->MetaClass = UHTMakefile.GetClassByIndex(MetaClassIndex);
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FAssetClassPropertyArchiveProxy& AssetClassPropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(AssetClassPropertyArchiveProxy);
|
|
Ar << AssetClassPropertyArchiveProxy.MetaClassIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FInterfacePropertyArchiveProxy::FInterfacePropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UInterfaceProperty* InterfaceProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, InterfaceProperty)
|
|
{
|
|
InterfaceClassIndex = UHTMakefile.GetClassIndex(InterfaceProperty->InterfaceClass);
|
|
}
|
|
|
|
UInterfaceProperty* FInterfacePropertyArchiveProxy::CreateInterfaceProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UInterfaceProperty* InterfaceProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UInterfaceProperty(FObjectInitializer());
|
|
PostConstruct(InterfaceProperty, UHTMakefile);
|
|
return InterfaceProperty;
|
|
}
|
|
|
|
void FInterfacePropertyArchiveProxy::Resolve(UInterfaceProperty* InterfaceProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(InterfaceProperty, UHTMakefile);
|
|
InterfaceProperty->InterfaceClass = UHTMakefile.GetClassByIndex(InterfaceClassIndex);
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FInterfacePropertyArchiveProxy& InterfacePropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(InterfacePropertyArchiveProxy);
|
|
Ar << InterfacePropertyArchiveProxy.InterfaceClassIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FStructPropertyArchiveProxy::FStructPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UStructProperty* StructProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, StructProperty)
|
|
{
|
|
StructIndex = UHTMakefile.GetScriptStructIndex(StructProperty->Struct);
|
|
}
|
|
|
|
UStructProperty* FStructPropertyArchiveProxy::CreateStructProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UStructProperty* StructProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UStructProperty(FObjectInitializer());
|
|
PostConstruct(StructProperty, UHTMakefile);
|
|
return StructProperty;
|
|
}
|
|
|
|
void FStructPropertyArchiveProxy::Resolve(UStructProperty* StructProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(StructProperty, UHTMakefile);
|
|
StructProperty->Struct = UHTMakefile.GetScriptStructByIndex(StructIndex);
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FStructPropertyArchiveProxy& StructPropertyArchiveProxy)
|
|
{
|
|
Ar << static_cast<FPropertyArchiveProxy&>(StructPropertyArchiveProxy);
|
|
Ar << StructPropertyArchiveProxy.StructIndex;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FScriptSparseArrayLayout& ScriptSparseArrayLayout)
|
|
{
|
|
Ar << ScriptSparseArrayLayout.ElementOffset;
|
|
Ar << ScriptSparseArrayLayout.Alignment;
|
|
Ar << ScriptSparseArrayLayout.Size;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FScriptSetLayout& ScriptSetLayout)
|
|
{
|
|
Ar << ScriptSetLayout.ElementOffset;
|
|
Ar << ScriptSetLayout.HashNextIdOffset;
|
|
Ar << ScriptSetLayout.HashIndexOffset;
|
|
Ar << ScriptSetLayout.Size;
|
|
Ar << ScriptSetLayout.SparseArrayLayout;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FScriptMapLayout& ScriptMapLayout)
|
|
{
|
|
Ar << ScriptMapLayout.KeyOffset;
|
|
Ar << ScriptMapLayout.ValueOffset;
|
|
Ar << ScriptMapLayout.SetLayout;
|
|
|
|
return Ar;
|
|
}
|
|
|
|
FMapPropertyArchiveProxy::FMapPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UMapProperty* MapProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, MapProperty)
|
|
{
|
|
KeyPropIndex = UHTMakefile.GetPropertyIndex(MapProperty->KeyProp);
|
|
ValuePropIndex = UHTMakefile.GetPropertyIndex(MapProperty->ValueProp);
|
|
MapLayout = MapProperty->MapLayout;
|
|
}
|
|
|
|
UMapProperty* FMapPropertyArchiveProxy::CreateMapProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UMapProperty* MapProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UMapProperty(FObjectInitializer());
|
|
PostConstruct(MapProperty, UHTMakefile);
|
|
return MapProperty;
|
|
}
|
|
|
|
void FMapPropertyArchiveProxy::Resolve(UMapProperty* MapProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(MapProperty, UHTMakefile);
|
|
MapProperty->KeyProp = UHTMakefile.GetPropertyByIndex(KeyPropIndex);
|
|
MapProperty->ValueProp = UHTMakefile.GetPropertyByIndex(ValuePropIndex);
|
|
MapProperty->MapLayout = MapLayout;
|
|
}
|
|
|
|
FSetPropertyArchiveProxy::FSetPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const USetProperty* SetProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, SetProperty)
|
|
{
|
|
ElementPropIndex = UHTMakefile.GetPropertyIndex(SetProperty->ElementProp);
|
|
SetLayout = SetProperty->SetLayout;
|
|
}
|
|
|
|
USetProperty* FSetPropertyArchiveProxy::CreateSetProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
USetProperty* SetProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) USetProperty(FObjectInitializer());
|
|
PostConstruct(SetProperty, UHTMakefile);
|
|
return SetProperty;
|
|
}
|
|
|
|
void FSetPropertyArchiveProxy::Resolve(USetProperty* SetProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(SetProperty, UHTMakefile);
|
|
SetProperty->ElementProp = UHTMakefile.GetPropertyByIndex(ElementPropIndex);
|
|
SetProperty->SetLayout = SetLayout;
|
|
}
|
|
|
|
UArrayProperty* FArrayPropertyArchiveProxy::CreateArrayProperty(const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
UObject* Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
|
|
UArrayProperty* ArrayProperty = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UArrayProperty(FObjectInitializer());
|
|
PostConstruct(ArrayProperty, UHTMakefile);
|
|
return ArrayProperty;
|
|
}
|
|
|
|
void FArrayPropertyArchiveProxy::Resolve(UArrayProperty* ArrayProperty, const FUHTMakefile& UHTMakefile) const
|
|
{
|
|
FPropertyArchiveProxy::Resolve(ArrayProperty, UHTMakefile);
|
|
ArrayProperty->Inner = UHTMakefile.GetPropertyByIndex(InnerIndex);
|
|
}
|
|
|
|
FArrayPropertyArchiveProxy::FArrayPropertyArchiveProxy(FUHTMakefile& UHTMakefile, const UArrayProperty* ArrayProperty)
|
|
: FPropertyArchiveProxy(UHTMakefile, ArrayProperty)
|
|
{
|
|
InnerIndex = UHTMakefile.GetPropertyIndex(ArrayProperty->Inner);
|
|
}
|