static void InnerCompileStruct(UUserDefinedStruct* Struct, const class UEdGraphSchema_K2* K2Schema, class FCompilerResultsLog& MessageLog) { check(Struct); const int32 ErrorNum = MessageLog.NumErrors; Struct->SetMetaData(FBlueprintMetadata::MD_Tooltip, *FStructureEditorUtils::GetTooltip(Struct)); auto EditorData = CastChecked<UUserDefinedStructEditorData>(Struct->EditorData); Struct->SetSuperStruct(EditorData->NativeBase); CreateVariables(Struct, K2Schema, MessageLog); Struct->Bind(); Struct->StaticLink(true); if (Struct->GetStructureSize() <= 0) { LogError(Struct, MessageLog, FString::Printf(*LOCTEXT("StructurEmpty_Error", "Structure '%s' is empty ").ToString(), *Struct->GetFullName())); } FString DefaultInstanceError; EditorData->RecreateDefaultInstance(&DefaultInstanceError); if (!DefaultInstanceError.IsEmpty()) { LogError(Struct, MessageLog, DefaultInstanceError); } const bool bNoErrorsDuringCompilation = (ErrorNum == MessageLog.NumErrors); Struct->Status = bNoErrorsDuringCompilation ? EUserDefinedStructureStatus::UDSS_UpToDate : EUserDefinedStructureStatus::UDSS_Error; }
void FStructureEditorUtils::RecreateDefaultInstanceInEditorData(UUserDefinedStruct* Struct) { auto StructEditorData = Struct ? CastChecked<UUserDefinedStructEditorData>(Struct->EditorData) : nullptr; if (StructEditorData) { StructEditorData->RecreateDefaultInstance(); } }