UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ArchiveReplaceOrClearExternalReferences.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Templates/Casts.h"
7#include "UObject/Package.h"
9
10/*----------------------------------------------------------------------------
11FArchiveReplaceOrClearExternalReferences.
12----------------------------------------------------------------------------*/
18template< class T >
20{
22public:
36
37 UE_DEPRECATED(5.0, "Use version that passes Flags instead of just bDelayStart")
51
53 {
54 UObject* Resolved = Obj;
55 TSuper::operator<<(Resolved);
56 // if Resolved is a private object in another package just clear the reference:
57 if (Resolved)
58 {
59 UPackage* ObjPackage = Resolved->GetPackage();
60 if (ObjPackage)
61 {
62 CA_SUPPRESS(6011);
63 if (ObjPackage != Obj &&
67 {
68 Resolved = nullptr;
69 }
70 }
71 }
72 Obj = Resolved;
73 return *this;
74 }
75
76protected:
79};
EArchiveReplaceObjectFlags
Definition ArchiveReplaceObjectRef.h:133
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define CA_SUPPRESS(WarningNumber)
Definition CoreMiscDefines.h:125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ RF_Public
Object is visible outside its package.
Definition ObjectMacros.h:559
const UObject * GetSearchObject() const
Definition ArchiveReplaceObjectRef.h:23
Definition ArchiveReplaceObjectRef.h:169
void SerializeSearchObject()
Definition ArchiveReplaceObjectRef.h:222
Definition ArchiveReplaceOrClearExternalReferences.h:20
UPackage * DestPackage
Definition ArchiveReplaceOrClearExternalReferences.h:78
FArchive & operator<<(UObject *&Obj)
Definition ArchiveReplaceOrClearExternalReferences.h:52
FArchiveReplaceOrClearExternalReferences(UObject *InSearchObject, const TMap< T *, T * > &InReplacementMap, UPackage *InDestPackage, EArchiveReplaceObjectFlags Flags=EArchiveReplaceObjectFlags::None)
Definition ArchiveReplaceOrClearExternalReferences.h:24
Definition Archive.h:1208
friend FArchive & operator<<(FArchive &Ar, ANSICHAR &Value)
Definition Archive.h:1387
Definition UnrealString.h.inl:34
COREUOBJECT_API UObject * GetOutermostObject() const
Definition UObjectBaseUtility.cpp:176
COREUOBJECT_API UPackage * GetPackage() const
Definition UObjectBaseUtility.cpp:199
bool HasAnyFlags(EObjectFlags FlagsToCheck) const
Definition UObjectBaseUtility.h:93
Definition Object.h:95
Definition Package.h:216