#pragma once

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

// Package: GameSettings

#include "Basic.hpp"

#include "CoreUObject_classes.hpp"
#include "UMG_structs.hpp"
#include "GameSettings_structs.hpp"


namespace SDK
{

// Class GameSettings.GameSetting
// 0x0110 (0x0138 - 0x0028)
class UGameSetting : public UObject
{
public:
	uint8                                         Pad_28[0x30];                                      // 0x0028(0x0030)(Fixing Size After Last Property [ Dumper-7 ])
	class ULocalPlayer*                           LocalPlayer;                                       // 0x0058(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UGameSetting*                           SettingParent;                                     // 0x0060(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UGameSettingRegistry*                   OwningRegistry;                                    // 0x0068(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_70[0xC8];                                      // 0x0070(0x00C8)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	class FText GetDisabledReason();
	ESlateVisibility GetDisplayNameVisibility();
	bool GetIsDisable();

	class FText GetDescriptionRichText() const;
	class FName GetDevName() const;
	class FText GetDisplayName() const;
	class FText GetDynamicDetails() const;
	const struct FGameplayTagContainer GetTags() const;
	class FText GetWarningRichText() const;

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

// Class GameSettings.GameSettingAction
// 0x0048 (0x0180 - 0x0138)
class UGameSettingAction : public UGameSetting
{
public:
	uint8                                         Pad_138[0x48];                                     // 0x0138(0x0048)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	class FText GetActionText() const;
	struct FGameplayTag GetNamedAction() const;

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

// Class GameSettings.GameSettingCollection
// 0x0010 (0x0148 - 0x0138)
class UGameSettingCollection : public UGameSetting
{
public:
	TArray<class UGameSetting*>                   Settings;                                          // 0x0138(0x0010)(ZeroConstructor, Transient, Protected, NativeAccessSpecifierProtected)

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

// Class GameSettings.GameSettingCollectionPage
// 0x0028 (0x0170 - 0x0148)
class UGameSettingCollectionPage final : public UGameSettingCollection
{
public:
	uint8                                         Pad_148[0x28];                                     // 0x0148(0x0028)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class GameSettings.GameSettingRegistry
// 0x0088 (0x00B0 - 0x0028)
class UGameSettingRegistry : public UObject
{
public:
	uint8                                         Pad_28[0x60];                                      // 0x0028(0x0060)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class UGameSetting*>                   TopLevelSettings;                                  // 0x0088(0x0010)(ZeroConstructor, Transient, Protected, NativeAccessSpecifierProtected)
	TArray<class UGameSetting*>                   RegisteredSettings;                                // 0x0098(0x0010)(ZeroConstructor, Transient, Protected, NativeAccessSpecifierProtected)
	class ULocalPlayer*                           OwningLocalPlayer;                                 // 0x00A8(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)

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

// Class GameSettings.GameSettingValue
// 0x0000 (0x0138 - 0x0138)
class UGameSettingValue : public UGameSetting
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("GameSettingValue")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"GameSettingValue")
	}
	static class UGameSettingValue* GetDefaultObj()
	{
		return GetDefaultObjImpl<UGameSettingValue>();
	}
};
DUMPER7_ASSERTS_UGameSettingValue;

// Class GameSettings.GameSettingValueDiscrete
// 0x0000 (0x0138 - 0x0138)
class UGameSettingValueDiscrete : public UGameSettingValue
{
public:
	void SetDiscreteOptionByIndex(int32 Index_0);

	int32 GetDiscreteOptionDefaultIndex() const;
	int32 GetDiscreteOptionIndex() const;
	TArray<class FText> GetDiscreteOptions() const;

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

// Class GameSettings.GameSettingValueDiscreteDynamic
// 0x0068 (0x01A0 - 0x0138)
class UGameSettingValueDiscreteDynamic : public UGameSettingValueDiscrete
{
public:
	uint8                                         Pad_138[0x68];                                     // 0x0138(0x0068)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class GameSettings.GameSettingValueDiscreteDynamic_Bool
// 0x0000 (0x01A0 - 0x01A0)
class UGameSettingValueDiscreteDynamic_Bool : public UGameSettingValueDiscreteDynamic
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("GameSettingValueDiscreteDynamic_Bool")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"GameSettingValueDiscreteDynamic_Bool")
	}
	static class UGameSettingValueDiscreteDynamic_Bool* GetDefaultObj()
	{
		return GetDefaultObjImpl<UGameSettingValueDiscreteDynamic_Bool>();
	}
};
DUMPER7_ASSERTS_UGameSettingValueDiscreteDynamic_Bool;

// Class GameSettings.GameSettingValueDiscreteDynamic_Number
// 0x0000 (0x01A0 - 0x01A0)
class UGameSettingValueDiscreteDynamic_Number : public UGameSettingValueDiscreteDynamic
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("GameSettingValueDiscreteDynamic_Number")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"GameSettingValueDiscreteDynamic_Number")
	}
	static class UGameSettingValueDiscreteDynamic_Number* GetDefaultObj()
	{
		return GetDefaultObjImpl<UGameSettingValueDiscreteDynamic_Number>();
	}
};
DUMPER7_ASSERTS_UGameSettingValueDiscreteDynamic_Number;

// Class GameSettings.GameSettingValueDiscreteDynamic_Enum
// 0x0000 (0x01A0 - 0x01A0)
class UGameSettingValueDiscreteDynamic_Enum : public UGameSettingValueDiscreteDynamic
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("GameSettingValueDiscreteDynamic_Enum")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"GameSettingValueDiscreteDynamic_Enum")
	}
	static class UGameSettingValueDiscreteDynamic_Enum* GetDefaultObj()
	{
		return GetDefaultObjImpl<UGameSettingValueDiscreteDynamic_Enum>();
	}
};
DUMPER7_ASSERTS_UGameSettingValueDiscreteDynamic_Enum;

// Class GameSettings.GameSettingValueDiscreteDynamic_Color
// 0x0000 (0x01A0 - 0x01A0)
class UGameSettingValueDiscreteDynamic_Color final : public UGameSettingValueDiscreteDynamic
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("GameSettingValueDiscreteDynamic_Color")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"GameSettingValueDiscreteDynamic_Color")
	}
	static class UGameSettingValueDiscreteDynamic_Color* GetDefaultObj()
	{
		return GetDefaultObjImpl<UGameSettingValueDiscreteDynamic_Color>();
	}
};
DUMPER7_ASSERTS_UGameSettingValueDiscreteDynamic_Color;

// Class GameSettings.GameSettingValueDiscreteDynamic_Vector2D
// 0x0000 (0x01A0 - 0x01A0)
class UGameSettingValueDiscreteDynamic_Vector2D final : public UGameSettingValueDiscreteDynamic
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("GameSettingValueDiscreteDynamic_Vector2D")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"GameSettingValueDiscreteDynamic_Vector2D")
	}
	static class UGameSettingValueDiscreteDynamic_Vector2D* GetDefaultObj()
	{
		return GetDefaultObjImpl<UGameSettingValueDiscreteDynamic_Vector2D>();
	}
};
DUMPER7_ASSERTS_UGameSettingValueDiscreteDynamic_Vector2D;

// Class GameSettings.GameSettingValueScalar
// 0x0000 (0x0138 - 0x0138)
class UGameSettingValueScalar : public UGameSettingValue
{
public:
	void SetValue(double Value, EGameSettingChangeReason Reason);
	void SetValueNormalized(double NormalizedValue);

	class FText GetFormattedText() const;
	double GetNormalizedStepSize() const;
	double GetValueNormalized() const;

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

// Class GameSettings.GameSettingValueScalarDynamic
// 0x00C8 (0x0200 - 0x0138)
class UGameSettingValueScalarDynamic final : public UGameSettingValueScalar
{
public:
	uint8                                         Pad_138[0xC8];                                     // 0x0138(0x00C8)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

}

