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 FScopeArchiveProxy::Resolve(FScope* Scope, const FUHTMakefile& UHTMakefile) const { Scope->Parent = UHTMakefile.GetScopeByIndex(ParentIndex); for (auto& Kvp : TypeMap) { FName Name = Kvp.Key.CreateName(UHTMakefile); UField* Field = UHTMakefile.GetFieldByIndex(Kvp.Value); Scope->TypeMap.Add(Name, Field); } }
void FFieldArchiveProxy::Resolve(UField* Field, const FUHTMakefile& UHTMakefile) const { FObjectBaseArchiveProxy::Resolve(Field, UHTMakefile); Field->Next = UHTMakefile.GetFieldByIndex(NextIndex); }