void UUpdateManager::StartHotfixCheck() { if (bCheckHotfixAvailabilityOnly) { // Just check for the presence of a hotfix StartHotfixAvailabilityCheck(); } else { SetUpdateState(EUpdateState::CheckingForHotfix); if (FLoadingScreenConfig::CheckForHotfixes()) { UOnlineHotfixManager* HotfixManager = GetHotfixManager<UOnlineHotfixManager>(); HotfixProgressDelegateHandle = HotfixManager->AddOnHotfixProgressDelegate_Handle(FOnHotfixProgressDelegate::CreateUObject(this, &ThisClass::OnHotfixProgress)); HotfixProcessedFileDelegateHandle = HotfixManager->AddOnHotfixProcessedFileDelegate_Handle(FOnHotfixProcessedFileDelegate::CreateUObject(this, &ThisClass::OnHotfixProcessedFile)); HotfixCompleteDelegateHandle = HotfixManager->AddOnHotfixCompleteDelegate_Handle(FOnHotfixCompleteDelegate::CreateUObject(this, &ThisClass::OnHotfixCheckComplete)); HotfixManager->StartHotfixProcess(); } else { OnHotfixCheckComplete(EHotfixResult::SuccessNoChange); } } }
virtual bool Exec(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar) override { if (FParse::Command(&Cmd, TEXT("HOTFIX"))) { UOnlineHotfixManager* HotfixManager = UOnlineHotfixManager::Get(InWorld); if (HotfixManager != nullptr) { HotfixManager->StartHotfixProcess(); } return true; } return false; }