EM_Task/CoreUObject/Private/Serialization/ObjectReader.cpp

60 lines
1.4 KiB
C++
Raw Permalink Normal View History

2026-02-13 16:18:33 +08:00
// Copyright Epic Games, Inc. All Rights Reserved.
#include "Serialization/ObjectReader.h"
#include "UObject/LazyObjectPtr.h"
#include "UObject/SoftObjectPtr.h"
///////////////////////////////////////////////////////
// FObjectReader
FArchive& FObjectReader::operator<<(FName& N)
{
FNameEntryId ComparisonIndex;
FNameEntryId DisplayIndex;
int32 Number;
ByteOrderSerialize(&ComparisonIndex, sizeof(ComparisonIndex));
ByteOrderSerialize(&DisplayIndex, sizeof(DisplayIndex));
ByteOrderSerialize(&Number, sizeof(Number));
// copy over the name with a name made from the name index and number
N = FName(ComparisonIndex, DisplayIndex, Number);
return *this;
}
FArchive& FObjectReader::operator<<(UObject*& Res)
{
ByteOrderSerialize(&Res, sizeof(Res));
return *this;
}
FArchive& FObjectReader::operator<<(FLazyObjectPtr& Value)
{
FArchive& Ar = *this;
FUniqueObjectGuid ID;
Ar << ID;
Value = ID;
return Ar;
}
FArchive& FObjectReader::operator<<(FSoftObjectPtr& Value)
{
Value.ResetWeakPtr();
return *this << Value.GetUniqueID();
}
FArchive& FObjectReader::operator<<(FSoftObjectPath& Value)
{
Value.SerializePath(*this);
return *this;
}
FArchive& FObjectReader::operator<<(FWeakObjectPtr& Value)
{
return FArchiveUObject::SerializeWeakObjectPtr(*this, Value);
}
FString FObjectReader::GetArchiveName() const
{
return TEXT("FObjectReader");
}