FClassArchiveProxy::FClassArchiveProxy(FUHTMakefile& UHTMakefile, const UClass* Class) : FStructArchiveProxy(UHTMakefile, Class) { ClassUnique = Class->ClassUnique; ClassFlags = Class->ClassFlags; ClassCastFlags = Class->ClassCastFlags; ClassWithinIndex = UHTMakefile.GetClassIndex(Class->ClassWithin); ClassGeneratedByIndex = UHTMakefile.GetObjectIndex(Class->ClassGeneratedBy); ClassConfigName = FNameArchiveProxy(UHTMakefile, Class->ClassConfigName); bCooked = Class->bCooked; ClassReps.Empty(Class->ClassReps.Num()); for (FRepRecord RepRecord : Class->ClassReps) { ClassReps.Add(FRepRecordArchiveProxy(UHTMakefile, RepRecord)); } NetFields.Empty(Class->NetFields.Num()); for (UField* Field : Class->NetFields) { NetFields.Add(UHTMakefile.GetFieldIndex(Field)); } FuncMap.Empty(Class->FuncMap.Num()); for (auto& Kvp : Class->FuncMap) { FuncMap.Add(TPairInitializer<FNameArchiveProxy, int32>(FNameArchiveProxy(UHTMakefile, Kvp.Key), UHTMakefile.GetFunctionIndex(Kvp.Value))); } Interfaces.Empty(Class->Interfaces.Num()); for (FImplementedInterface ImplementedInterface : Class->Interfaces) { Interfaces.Add(FImplementedInterfaceArchiveProxy(UHTMakefile, ImplementedInterface)); } }
FScopeArchiveProxy::FScopeArchiveProxy(const FUHTMakefile& UHTMakefile, const FScope* Scope) { ParentIndex = UHTMakefile.GetScopeIndex(Scope->GetParent()); for (auto& Kvp : Scope->TypeMap) { TypeMap.Add(TPairInitializer<FNameArchiveProxy, FSerializeIndex>(FNameArchiveProxy(UHTMakefile, Kvp.Key), UHTMakefile.GetFieldIndex(Kvp.Value))); } }
FFieldArchiveProxy::FFieldArchiveProxy(FUHTMakefile& UHTMakefile, const UField* Field) : FObjectBaseArchiveProxy(UHTMakefile, Field) { NextIndex = UHTMakefile.GetFieldIndex(Field->Next); }