#pragma once

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

// Package: MatchmakingMatchmaker

#include "Basic.hpp"

#include "MatchmakingMatchmaker_structs.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "CoreUObject_classes.hpp"


SDK_NAMESPACE_START

// Class MatchmakingMatchmaker.Matchmaker
// 0x02F0 (0x0598 - 0x02A8)
class AMatchmaker : public AActor
{
public:
	uint8                                         Pad_2A8[0x1E8];                                    // 0x02A8(0x01E8)(Fixing Size After Last Property [ Dumper-7 ])
	struct FMatchmakerHostConfiguration           HostConfiguration;                                 // 0x0490(0x0108)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)

public:
	void GetMatchmakingStatus(const struct FUniqueNetIdRepl& UserIdRepl, struct FMatchmakerProgressInfo* ProgressInfo);
	void GetReadyState(const struct FUniqueNetIdRepl& LocalUserId, const struct FUniqueNetIdRepl& TargetUserId, bool* bIsReady);
	void IsMatchmaking(bool* bIsMatchmaking);
	void OnCancelled();
	void OnError(const class FString& MatchmakingError);
	void OnProgress(const struct FMatchmakerProgressInfo& ProgressInfo);
	void SetReadyState(const struct FUniqueNetIdRepl& UserId, bool bIsReady);

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

// Class MatchmakingMatchmaker.MatchmakerSubmitMatchResults
// 0x0058 (0x0088 - 0x0030)
class UMatchmakerSubmitMatchResults final : public UBlueprintAsyncActionBase
{
public:
	TMulticastInlineDelegate<void(bool bWasSuccessful)> OnComplete;                                  // 0x0030(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	class UMatchmakerSubsystem*                   Subsystem;                                         // 0x0040(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	struct FUniqueNetIdRepl                       LocalUserId;                                       // 0x0048(0x0030)(HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TArray<float>                                 TeamScores;                                        // 0x0078(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)

public:
	static class UMatchmakerSubmitMatchResults* SubmitMatchResults(class UMatchmakerSubsystem* Subsystem_0, const struct FUniqueNetIdRepl& LocalUserId_0, const TArray<float>& TeamScores_0);

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

// Class MatchmakingMatchmaker.MatchmakerSubsystem
// 0x0080 (0x00B0 - 0x0030)
class UMatchmakerSubsystem final : public UGameInstanceSubsystem
{
public:
	uint8                                         Pad_30[0x70];                                      // 0x0030(0x0070)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(int32 ControllerIndex, const struct FUniqueNetIdRepl& UserId, const struct FMatchmakerResult& Results)> OnComplete; // 0x00A0(0x0010)(Edit, ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)

public:
	void GetTeamAndSlotForPlayer(class APlayerController* LocalPlayerController, class APlayerState* TargetPlayerState, bool* Found, int32* Team, int32* slot);
	void GetTeamAndSlotForPlayerOnServer(class APlayerState* TargetPlayerState, bool* Found, int32* Team, int32* slot);

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

// Class MatchmakingMatchmaker.RedpointMatchmakerBlueprintFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class URedpointMatchmakerBlueprintFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static bool AreAllExpectedPlayersConnectedFromMatchmaker(class UGameInstance* GameInstance);
	static class APlayerStart* FindMatchmakerTeamPlayerStart(class APlayerState* PlayerState);

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

// Class MatchmakingMatchmaker.RedpointMatchmakerConfig
// 0x0010 (0x0038 - 0x0028)
class URedpointMatchmakerConfig final : public UObject
{
public:
	class FString                                 TeamLayoutWithoutMatchmaker;                       // 0x0028(0x0010)(Edit, ZeroConstructor, Config, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

// Class MatchmakingMatchmaker.RedpointMatchmakerTeamComponent
// 0x0018 (0x00D0 - 0x00B8)
class URedpointMatchmakerTeamComponent final : public UActorComponent
{
public:
	uint8                                         Pad_B8[0x8];                                       // 0x00B8(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         Team;                                              // 0x00C0(0x0004)(Net, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	int32                                         slot;                                              // 0x00C4(0x0004)(Net, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_C8[0x8];                                       // 0x00C8(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	int32 GetSlot() const;
	int32 GetTeam() const;

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

// Class MatchmakingMatchmaker.RedpointMatchmakerTeamPlayerStart
// 0x0008 (0x02E0 - 0x02D8)
class ARedpointMatchmakerTeamPlayerStart final : public APlayerStart
{
public:
	int32                                         Team;                                              // 0x02D8(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         slot;                                              // 0x02DC(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

SDK_NAMESPACE_END
