#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: CommonInput

#include "Basic.hpp"

#include "CommonInput_structs.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "CoreUObject_classes.hpp"
#include "DeveloperSettings_structs.hpp"
#include "DeveloperSettings_classes.hpp"


namespace SDK
{

// Class CommonInput.CommonInputActionDomain
// 0x0010 (0x0040 - 0x0030)
class UCommonInputActionDomain final : public UDataAsset
{
public:
	ECommonInputEventFlowBehavior                 Behavior;                                          // 0x0030(0x0004)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ECommonInputEventFlowBehavior                 InnerBehavior;                                     // 0x0034(0x0004)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bUseActionDomainDesiredInputConfig;                // 0x0038(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ECommonInputMode                              InputMode;                                         // 0x0039(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EMouseCaptureMode                             MouseCaptureMode;                                  // 0x003A(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_3B[0x5];                                       // 0x003B(0x0005)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonInputActionDomain")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonInputActionDomain")
	}
	static class UCommonInputActionDomain* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonInputActionDomain>();
	}
};
DUMPER7_ASSERTS_UCommonInputActionDomain;

// Class CommonInput.CommonInputActionDomainTable
// 0x0018 (0x0048 - 0x0030)
class UCommonInputActionDomainTable final : public UDataAsset
{
public:
	TArray<class UCommonInputActionDomain*>       ActionDomains;                                     // 0x0030(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, DisableEditOnInstance, UObjectWrapper, NativeAccessSpecifierPublic)
	ECommonInputMode                              InputMode;                                         // 0x0040(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EMouseCaptureMode                             MouseCaptureMode;                                  // 0x0041(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_42[0x6];                                       // 0x0042(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonInputActionDomainTable")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonInputActionDomainTable")
	}
	static class UCommonInputActionDomainTable* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonInputActionDomainTable>();
	}
};
DUMPER7_ASSERTS_UCommonInputActionDomainTable;

// Class CommonInput.CommonUIInputData
// 0x0058 (0x0080 - 0x0028)
class UCommonUIInputData final : public UObject
{
public:
	struct FDataTableRowHandle                    DefaultClickAction;                                // 0x0028(0x0010)(Edit, DisableEditOnInstance, NoDestructor, NativeAccessSpecifierPublic)
	struct FDataTableRowHandle                    DefaultBackAction;                                 // 0x0038(0x0010)(Edit, DisableEditOnInstance, NoDestructor, NativeAccessSpecifierPublic)
	TSoftClassPtr<class UClass>                   DefaultHoldData;                                   // 0x0048(0x0028)(Edit, DisableEditOnInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UInputAction*                           EnhancedInputClickAction;                          // 0x0070(0x0008)(Edit, ZeroConstructor, DisableEditOnInstance, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UInputAction*                           EnhancedInputBackAction;                           // 0x0078(0x0008)(Edit, ZeroConstructor, DisableEditOnInstance, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonUIInputData")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonUIInputData")
	}
	static class UCommonUIInputData* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonUIInputData>();
	}
};
DUMPER7_ASSERTS_UCommonUIInputData;

// Class CommonInput.CommonUIHoldData
// 0x0018 (0x0040 - 0x0028)
class UCommonUIHoldData final : public UObject
{
public:
	struct FInputHoldData                         KeyboardAndMouse;                                  // 0x0028(0x0008)(Edit, DisableEditOnInstance, NoDestructor, NativeAccessSpecifierPublic)
	struct FInputHoldData                         Gamepad;                                           // 0x0030(0x0008)(Edit, DisableEditOnInstance, NoDestructor, NativeAccessSpecifierPublic)
	struct FInputHoldData                         Touch;                                             // 0x0038(0x0008)(Edit, DisableEditOnInstance, NoDestructor, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonUIHoldData")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonUIHoldData")
	}
	static class UCommonUIHoldData* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonUIHoldData>();
	}
};
DUMPER7_ASSERTS_UCommonUIHoldData;

// Class CommonInput.CommonInputBaseControllerData
// 0x00D8 (0x0100 - 0x0028)
class UCommonInputBaseControllerData : public UObject
{
public:
	ECommonInputType                              InputType;                                         // 0x0028(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x3];                                       // 0x0029(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	class FName                                   GamepadName;                                       // 0x002C(0x0008)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_34[0x4];                                       // 0x0034(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class FText                                   GamepadDisplayName;                                // 0x0038(0x0018)(Edit, DisableEditOnInstance, NativeAccessSpecifierPublic)
	class FText                                   GamepadCategory;                                   // 0x0050(0x0018)(Edit, DisableEditOnInstance, NativeAccessSpecifierPublic)
	class FText                                   GamepadPlatformName;                               // 0x0068(0x0018)(Edit, DisableEditOnInstance, NativeAccessSpecifierPublic)
	TArray<struct FInputDeviceIdentifierPair>     GamepadHardwareIdMapping;                          // 0x0080(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, NativeAccessSpecifierPublic)
	TSoftObjectPtr<class UTexture2D>              ControllerTexture;                                 // 0x0090(0x0028)(Edit, DisableEditOnInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TSoftObjectPtr<class UTexture2D>              ControllerButtonMaskTexture;                       // 0x00B8(0x0028)(Edit, DisableEditOnInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<struct FCommonInputKeyBrushConfiguration> InputBrushDataMap;                              // 0x00E0(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, NativeAccessSpecifierPublic)
	TArray<struct FCommonInputKeySetBrushConfiguration> InputBrushKeySets;                           // 0x00F0(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, NativeAccessSpecifierPublic)

public:
	static const TArray<class FName> GetRegisteredGamepads();

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonInputBaseControllerData")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonInputBaseControllerData")
	}
	static class UCommonInputBaseControllerData* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonInputBaseControllerData>();
	}
};
DUMPER7_ASSERTS_UCommonInputBaseControllerData;

// Class CommonInput.CommonInputPlatformSettings
// 0x0030 (0x0070 - 0x0040)
class UCommonInputPlatformSettings final : public UPlatformSettings
{
public:
	ECommonInputType                              DefaultInputType;                                  // 0x0040(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          bSupportsMouseAndKeyboard;                         // 0x0041(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          bSupportsTouch;                                    // 0x0042(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          bSupportsGamepad;                                  // 0x0043(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class FName                                   DefaultGamepadName;                                // 0x0044(0x0008)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          bCanChangeGamepadType;                             // 0x004C(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_4D[0x3];                                       // 0x004D(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<TSoftClassPtr<class UClass>>           ControllerData;                                    // 0x0050(0x0010)(Edit, ZeroConstructor, Config, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	TArray<TSubclassOf<class UCommonInputBaseControllerData>> ControllerDataClasses;                 // 0x0060(0x0010)(ZeroConstructor, Transient, Protected, UObjectWrapper, NativeAccessSpecifierProtected)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonInputPlatformSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonInputPlatformSettings")
	}
	static class UCommonInputPlatformSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonInputPlatformSettings>();
	}
};
DUMPER7_ASSERTS_UCommonInputPlatformSettings;

// Class CommonInput.CommonInputSettings
// 0x00E8 (0x0120 - 0x0038)
class UCommonInputSettings final : public UDeveloperSettings
{
public:
	TSoftClassPtr<class UClass>                   InputData;                                         // 0x0038(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	struct FPerPlatformSettings                   PlatformInput;                                     // 0x0060(0x0010)(Edit, ContainsInstancedReference, NativeAccessSpecifierPrivate)
	TMap<class FName, struct FCommonInputPlatformBaseData> CommonInputPlatformData;                  // 0x0070(0x0050)(Config, Deprecated, NativeAccessSpecifierPrivate)
	bool                                          bEnableInputMethodThrashingProtection;             // 0x00C0(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_C1[0x3];                                       // 0x00C1(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         InputMethodThrashingLimit;                         // 0x00C4(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	double                                        InputMethodThrashingWindowInSeconds;               // 0x00C8(0x0008)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	double                                        InputMethodThrashingCooldownInSeconds;             // 0x00D0(0x0008)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bAllowOutOfFocusDeviceInput;                       // 0x00D8(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bEnableDefaultInputConfig;                         // 0x00D9(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bEnableEnhancedInputSupport;                       // 0x00DA(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_DB[0x5];                                       // 0x00DB(0x0005)(Fixing Size After Last Property [ Dumper-7 ])
	TSoftObjectPtr<class UCommonInputActionDomainTable> ActionDomainTable;                           // 0x00E0(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	float                                         MouseInputTypeChangedThreshold;                    // 0x0108(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_10C[0x4];                                      // 0x010C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TSubclassOf<class UCommonUIInputData>         InputDataClass;                                    // 0x0110(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UCommonInputActionDomainTable*          ActionDomainTablePtr;                              // 0x0118(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

public:
	static bool IsEnhancedInputSupportEnabled();

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonInputSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonInputSettings")
	}
	static class UCommonInputSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonInputSettings>();
	}
};
DUMPER7_ASSERTS_UCommonInputSettings;

// Class CommonInput.CommonInputSubsystem
// 0x00E8 (0x0118 - 0x0030)
class UCommonInputSubsystem final : public ULocalPlayerSubsystem
{
public:
	uint8                                         Pad_30[0x38];                                      // 0x0030(0x0038)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(ECommonInputType bNewInputType)> OnInputMethodChanged;             // 0x0068(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPrivate)
	int32                                         NumberOfInputMethodChangesRecently;                // 0x0078(0x0004)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_7C[0x4];                                       // 0x007C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	double                                        LastInputMethodChangeTime;                         // 0x0080(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	double                                        LastTimeInputMethodThrashingBegan;                 // 0x0088(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	ECommonInputType                              LastInputType;                                     // 0x0090(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	ECommonInputType                              CurrentInputType;                                  // 0x0091(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_92[0x2];                                       // 0x0092(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
	class FName                                   GamepadInputType;                                  // 0x0094(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_9C[0x4];                                       // 0x009C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TMap<class FName, ECommonInputType>           CurrentInputLocks;                                 // 0x00A0(0x0050)(Transient, NativeAccessSpecifierPrivate)
	uint8                                         Pad_F0[0x8];                                       // 0x00F0(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class UCommonInputActionDomainTable*          ActionDomainTable;                                 // 0x00F8(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bIsGamepadSimulatedClick;                          // 0x0100(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_101[0x17];                                     // 0x0101(0x0017)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void BroadcastInputMethodChanged();
	void SetCurrentInputType(ECommonInputType NewInputType);
	void SetGamepadInputType(const class FName InGamepadInputType);

	const class FName GetCurrentGamepadName() const;
	ECommonInputType GetCurrentInputType() const;
	ECommonInputType GetDefaultInputType() const;
	bool IsInputMethodActive(ECommonInputType InputMethod) const;
	bool IsUsingPointerInput() const;
	bool ShouldShowInputKeys() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("CommonInputSubsystem")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"CommonInputSubsystem")
	}
	static class UCommonInputSubsystem* GetDefaultObj()
	{
		return GetDefaultObjImpl<UCommonInputSubsystem>();
	}
};
DUMPER7_ASSERTS_UCommonInputSubsystem;

}

