void FClassArchiveProxy::Resolve(UClass* Class, const FUHTMakefile& UHTMakefile) const
{
    FStructArchiveProxy::Resolve(Class, UHTMakefile);
    Class->SetSuperStruct(UHTMakefile.GetStructByIndex(SuperStructIndex));
    Class->ClassWithin = UHTMakefile.GetClassByIndex(ClassWithinIndex);
    Class->ClassGeneratedBy = UHTMakefile.GetObjectByIndex(ClassGeneratedByIndex);

    Class->NetFields.Empty(NetFields.Num());
    for (FSerializeIndex FieldIndex : NetFields)
    {
        Class->NetFields.Add(UHTMakefile.GetFieldByIndex(FieldIndex));
    }

    Class->FuncMap.Empty(FuncMap.Num());
    for (auto& Kvp : FuncMap)
    {
        Class->FuncMap.Add(Kvp.Key.CreateName(UHTMakefile), UHTMakefile.GetFunctionByIndex(Kvp.Value));
    }

    Class->Interfaces.Empty(Interfaces.Num());
    for (FImplementedInterfaceArchiveProxy ImplementedInterfaceArchiveProxy : Interfaces)
    {
        FImplementedInterface ImplementedInterface = ImplementedInterfaceArchiveProxy.CreateImplementedInterface(UHTMakefile);
        ImplementedInterfaceArchiveProxy.Resolve(ImplementedInterface, UHTMakefile);
        Class->Interfaces.Add(ImplementedInterface);
    }
    Class->ClassConfigName = ClassConfigName.CreateName(UHTMakefile);
}
void FObjectBaseArchiveProxy::Resolve(UObjectBase* ObjectBase, const FUHTMakefile& UHTMakefile) const
{
	ObjectBase->Class = UHTMakefile.GetClassByIndex(ClassIndex);
	ObjectBase->Outer = UHTMakefile.GetObjectByIndex(OuterIndex);
}