void UShooterLocalPlayer::LoadSaveGame() { auto SlotName = GetNickname(); auto UserIndex = GetControllerId(); //#if PLATFORM_WOLF // FPlatformMisc::GetUniqueStringNameForControllerId(UserIdex, SaveGameName); //#endif if (nullptr != SaveGame) { if (SaveGame->GetUserIndex() != UserIndex || SaveGame->GetSlotName() != SlotName) { SaveGame->SaveIfDirty(); SaveGame = nullptr; } } if (nullptr == SaveGame) { const auto IdentityInterface = Online::GetIdentityInterface(); if (IdentityInterface.IsValid() && GetPreferredUniqueNetId().IsValid()) { UserIndex = IdentityInterface->GetPlatformUserIdFromUniqueNetId(*GetPreferredUniqueNetId()); } SaveGame = UShooterSaveGame::Load(SlotName, UserIndex); } }
void UShooterLocalPlayer::LoadPersistentUser() { // if we changed controllerid / user, then we need to load the appropriate persistent user. if (PersistentUser != nullptr && ( GetControllerId() != PersistentUser->GetUserIndex() || GetNickname() != PersistentUser->GetName() ) ) { PersistentUser->SaveIfDirty(); PersistentUser = nullptr; } if (PersistentUser == NULL) { // Use the platform id here to be resilient in the face of controller swapping and similar situations. FPlatformUserId PlatformId = GetControllerId(); auto Identity = Online::GetIdentityInterface(); if (Identity.IsValid() && GetPreferredUniqueNetId().IsValid()) { PlatformId = Identity->GetPlatformUserIdFromUniqueNetId(*GetPreferredUniqueNetId()); } PersistentUser = UShooterPersistentUser::LoadPersistentUser( GetNickname(), PlatformId ); } }