60 lines
1.4 KiB
C++
60 lines
1.4 KiB
C++
|
|
// 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");
|
||
|
|
}
|