int R_FindCustomTranslation(FName name) { switch (name) { case NAME_Ice: // Ice is a special case which will remain in its original slot. return TRANSLATION(TRANSLATION_Standard, 7); case NAME_None: return 0; case NAME_RainPillar1: case NAME_RainPillar2: case NAME_RainPillar3: case NAME_RainPillar4: case NAME_RainPillar5: case NAME_RainPillar6: case NAME_RainPillar7: case NAME_RainPillar8: return TRANSLATION(TRANSLATION_RainPillar, name.GetIndex() - NAME_RainPillar1); case NAME_Player1: case NAME_Player2: case NAME_Player3: case NAME_Player4: case NAME_Player5: case NAME_Player6: case NAME_Player7: case NAME_Player8: return TRANSLATION(TRANSLATION_Players, name.GetIndex() - NAME_Player1); } int *t = customTranslationMap.CheckKey(FName(name, true)); return (t != nullptr)? *t : -1; }
void WriteUserInfo(FArchive &arc, userinfo_t &info) { TMapIterator<FName, FBaseCVar *> it(info); TMap<FName, FBaseCVar *>::Pair *pair; FName name; UCVarValue val; int i; while (it.NextPair(pair)) { name = pair->Key; arc << name; switch (name.GetIndex()) { case NAME_Skin: arc.WriteString(skins[info.GetSkin()].name); break; case NAME_PlayerClass: i = info.GetPlayerClassNum(); arc.WriteString(i == -1 ? "Random" : PlayerClasses[i].Type->Meta.GetMetaString(APMETA_DisplayName)); break; default: val = pair->Value->GetGenericRep(CVAR_String); arc.WriteString(val.String); break; } } name = NAME_None; arc << name; }
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.GetIndex() <= 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.GetIndex()); 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; }
FName VObject::MakeUniqueObjectName(const VClass* InClass, FName BaseName /* = NAME_None */) { check(InClass); VClass* Class = (VClass*)InClass; if( BaseName == NAME_None ) { BaseName = InClass->GetClassName(); } EName BaseNameIndex = (EName)BaseName.GetIndex(); FName TestName; do { TestName = FName(BaseNameIndex, ++(Class->_ClassUnique)); } while (StaticFindObject(InClass, TestName)); return TestName; }