// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "Containers/Map.h" #include "GameFeatureAction_WorldActionBase.h" #include "HAL/Platform.h" #include "UObject/ObjectKey.h" #include "UObject/UObjectGlobals.h" #include "GameFeatureAction_SplitscreenConfig.generated.h" class UObject; struct FGameFeatureDeactivatingContext; struct FGameFeatureStateChangeContext; struct FWorldContext; ////////////////////////////////////////////////////////////////////// // UGameFeatureAction_SplitscreenConfig /** * GameFeatureAction responsible for granting abilities (and attributes) to actors of a specified type. */ UCLASS(MinimalAPI, meta = (DisplayName = "Splitscreen Config")) class UGameFeatureAction_SplitscreenConfig final : public UGameFeatureAction_WorldActionBase { GENERATED_BODY() public: //~ Begin UGameFeatureAction interface virtual void OnGameFeatureDeactivating(FGameFeatureDeactivatingContext& Context) override; //~ End UGameFeatureAction interface //~ Begin UGameFeatureAction_WorldActionBase interface virtual void AddToWorld(const FWorldContext& WorldContext, const FGameFeatureStateChangeContext& ChangeContext) override; //~ End UGameFeatureAction_WorldActionBase interface public: UPROPERTY(EditAnywhere, Category=Action) bool bDisableSplitscreen = true; private: TArray LocalDisableVotes; static TMap GlobalDisableVotes; };