You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Introducing the CQTestEnhancedInput plugin as this requires use of the EnhancedInput Engine Plugin (Engine modules cannot make use of the Engine Plugin) #jira UE-217806 #rb Devin.Doucette, Jerome.Delattre, rob.huyett, sean.sweeney [CL 36039088 by sebastian lewicki in ue5-main branch]
62 lines
1.7 KiB
C++
62 lines
1.7 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Components/PIENetworkTestStateRestorer.h"
|
|
|
|
#include "GameMapsSettings.h"
|
|
#include "GameFramework/GameMode.h"
|
|
#include "GameFramework/WorldSettings.h"
|
|
|
|
DEFINE_LOG_CATEGORY_STATIC(LogPieNetworkStateRestorer, Log, All);
|
|
|
|
FPIENetworkTestStateRestorer::FPIENetworkTestStateRestorer(const FSoftClassPath InGameInstanceClass, const TSubclassOf<AGameModeBase> InGameMode)
|
|
{
|
|
check(GWorld);
|
|
if (InGameInstanceClass.IsValid())
|
|
{
|
|
UGameMapsSettings* GameMapSettings = GetMutableDefault<UGameMapsSettings>();
|
|
if (GameMapSettings)
|
|
{
|
|
OriginalGameInstance = GameMapSettings->GameInstanceClass;
|
|
GameMapSettings->GameInstanceClass = InGameInstanceClass;
|
|
}
|
|
else
|
|
{
|
|
UE_LOG(LogPieNetworkStateRestorer, Error, TEXT("Unable to get UGameMapsSettings in when creating FPIENetworkTestStateRestorer"));
|
|
}
|
|
}
|
|
if (GWorld->GetWorldSettings() != nullptr)
|
|
{
|
|
OriginalGameMode = GWorld->GetWorldSettings()->DefaultGameMode;
|
|
GWorld->GetWorldSettings()->DefaultGameMode = InGameMode;
|
|
}
|
|
if (!GWorld->HasAllFlags(RF_WasLoaded))
|
|
{
|
|
GWorld->SetFlags(RF_WasLoaded);
|
|
SetWasLoadedFlag = true;
|
|
}
|
|
}
|
|
|
|
void FPIENetworkTestStateRestorer::Restore() {
|
|
if (GWorld && SetWasLoadedFlag)
|
|
{
|
|
GWorld->ClearFlags(RF_WasLoaded);
|
|
}
|
|
|
|
if (OriginalGameInstance.IsValid())
|
|
{
|
|
UGameMapsSettings* GameMapSettings = GetMutableDefault<UGameMapsSettings>();
|
|
if (GameMapSettings)
|
|
{
|
|
GameMapSettings->GameInstanceClass = OriginalGameInstance;
|
|
}
|
|
else
|
|
{
|
|
UE_LOG(LogPieNetworkStateRestorer, Error, TEXT("Unable to get UGameMapsSettings when destroying FPIENetworkTestStateRestorer"));
|
|
}
|
|
}
|
|
|
|
if (GWorld && OriginalGameMode != nullptr)
|
|
{
|
|
GWorld->GetWorldSettings()->DefaultGameMode = OriginalGameMode;
|
|
}
|
|
} |