Files
DedicatedServerCourse/Source/FPSTemplate/Public/Game/ShooterGameMode.h

48 lines
1.6 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "ShooterGameModeBase.h"
#if WITH_GAMELIFT
#include "GameLiftServerSDK.h"
#endif
#include "ShooterGameMode.generated.h"
DECLARE_LOG_CATEGORY_EXTERN(LogShooterGameMode, Log, All);
/**
*
*/
UCLASS()
class FPSTEMPLATE_API AShooterGameMode : public AShooterGameModeBase
{
GENERATED_BODY()
public:
AShooterGameMode();
protected:
virtual void BeginPlay() override;
private:
void InitGameLift();
#if WITH_GAMELIFT
bool SetParametersFromCommandLine(FServerParameters& OutServerParameters, FProcessParameters& OutProcessParameters);
static void LogServerParameters(const FServerParameters& InServerParameters);
void SetProcessIdOnServerParameters(FServerParameters& OutServerParameters);
bool ValidateServerParameters(const FString& CommandLine, const FString& ParameterName, FString& OutValue, const bool bCritical = true);
void LogServerSummary(const FServerParameters& InServerParameters, const FProcessParameters& InProcessParameters);
void LogGameLiftServerSummary(bool bIsAnywhere, const FServerParameters& InServerParameters, const FProcessParameters& InProcessParameters);
void BindGameLiftCallbackFunctions(FProcessParameters& ProcessParameters,
FGameLiftServerSDKModule& GameLiftSdkModule);
void InitiateProcessReady(FProcessParameters& ProcessParameters, FGameLiftServerSDKModule& GameLiftSdkModule);
bool InitiateConnectionWithGameLiftAgent(FServerParameters& ServerParameters,
FGameLiftServerSDKModule& GameLiftSdkModule);
#endif
};