Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/UHTMakefile/ScriptStructArchiveProxy.cpp
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

51 lines
2.0 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "ScriptStructArchiveProxy.h"
#include "UnrealHeaderTool.h"
#include "UObject/Package.h"
#include "UHTMakefile.h"
FScriptStructArchiveProxy::FScriptStructArchiveProxy(FUHTMakefile& UHTMakefile, const UScriptStruct* ScriptStruct)
: FStructArchiveProxy(UHTMakefile, ScriptStruct)
{
StructFlagsUInt32 = (uint32)ScriptStruct->StructFlags;
StructMacroDeclaredLineNumber = ScriptStruct->StructMacroDeclaredLineNumber;
bPrepareCppStructOpsCompleted = ScriptStruct->bPrepareCppStructOpsCompleted;
}
UScriptStruct* FScriptStructArchiveProxy::CreateScriptStruct(const FUHTMakefile& UHTMakefile) const
{
UObject* Outer = Cast<UPackage>(UHTMakefile.GetObjectByIndex(OuterIndex));
UScriptStruct* SuperStruct = UHTMakefile.GetScriptStructByIndex(SuperStructIndex);
FName StructName = Name.CreateName(UHTMakefile);
UScriptStruct* ScriptStruct = new (EC_InternalUseOnlyConstructor, Outer, Name.CreateName(UHTMakefile), (EObjectFlags)ObjectFlagsUint32) UScriptStruct(FObjectInitializer(), SuperStruct);
PostConstruct(ScriptStruct);
return ScriptStruct;
}
void FScriptStructArchiveProxy::PostConstruct(UScriptStruct* ScriptStruct) const
{
ScriptStruct->StructFlags = (EStructFlags)StructFlagsUInt32;
ScriptStruct->StructMacroDeclaredLineNumber = StructMacroDeclaredLineNumber;
ScriptStruct->bPrepareCppStructOpsCompleted = bPrepareCppStructOpsCompleted;
}
void FScriptStructArchiveProxy::Resolve(UScriptStruct* ScriptStruct, const FUHTMakefile& UHTMakefile) const
{
FStructArchiveProxy::Resolve(ScriptStruct, UHTMakefile);
}
FArchive& operator<<(FArchive& Ar, FScriptStructArchiveProxy& ScriptStructArchiveProxy)
{
Ar << static_cast<FStructArchiveProxy&>(ScriptStructArchiveProxy);
Ar << ScriptStructArchiveProxy.StructFlagsUInt32;
Ar << ScriptStructArchiveProxy.StructMacroDeclaredLineNumber;
bool bRemovedCppStructOpsFromBaseClass = false;
Ar << bRemovedCppStructOpsFromBaseClass;
Ar << ScriptStructArchiveProxy.bPrepareCppStructOpsCompleted;
return Ar;
}