void FName::AutoTest() { const FName AutoTest_1("AutoTest_1"); const FName autoTest_1("autoTest_1"); const FName autoTeSt_1("autoTeSt_1"); const FName AutoTest1Find("autoTEST_1", EFindName::FNAME_Find); const FName AutoTest_2(TEXT("AutoTest_2")); const FName AutoTestB_2(TEXT("AutoTestB_2")); check(AutoTest_1 != AutoTest_2); check(AutoTest_1 == autoTest_1); check(AutoTest_1 == autoTeSt_1); #if WITH_CASE_PRESERVING_NAME check(!FCString::Strcmp(*AutoTest_1.ToString(), TEXT("AutoTest_1"))); check(!FCString::Strcmp(*autoTest_1.ToString(), TEXT("autoTest_1"))); check(!FCString::Strcmp(*autoTeSt_1.ToString(), TEXT("autoTeSt_1"))); check(!FCString::Strcmp(*AutoTestB_2.ToString(), TEXT("AutoTestB_2"))); #endif check(autoTest_1.GetComparisonIndex() == AutoTest_2.GetComparisonIndex()); check(autoTest_1.GetPlainNameString() == AutoTest_1.GetPlainNameString()); check(autoTest_1.GetPlainNameString() == AutoTest_2.GetPlainNameString()); check(*AutoTestB_2.GetPlainNameString() != *AutoTest_2.GetPlainNameString()); check(AutoTestB_2.GetNumber() == AutoTest_2.GetNumber()); check(autoTest_1.GetNumber() != AutoTest_2.GetNumber()); }
bool UPackageMap::SerializeName(FArchive& Ar, FName& Name) { if (Ar.IsLoading()) { uint8 bHardcoded = 0; Ar.SerializeBits(&bHardcoded, 1); if (bHardcoded) { // replicated by hardcoded index uint32 NameIndex; Ar.SerializeInt(NameIndex, MAX_NETWORKED_HARDCODED_NAME + 1); Name = EName(NameIndex); // hardcoded names never have a Number } else { // replicated by string FString InString; int32 InNumber; Ar << InString << InNumber; Name = FName(*InString, InNumber); } } else if (Ar.IsSaving()) { uint8 bHardcoded = Name.GetComparisonIndex() <= MAX_NETWORKED_HARDCODED_NAME; Ar.SerializeBits(&bHardcoded, 1); if (bHardcoded) { // send by hardcoded index checkSlow(Name.GetNumber() <= 0); // hardcoded names should never have a Number uint32 NameIndex = uint32(Name.GetComparisonIndex()); Ar.SerializeInt(NameIndex, MAX_NETWORKED_HARDCODED_NAME + 1); } else { // send by string FString OutString = Name.GetPlainNameString(); int32 OutNumber = Name.GetNumber(); Ar << OutString << OutNumber; } } return true; }