#pragma once

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

// Package: MatchmakingMatchmaker

#include "Basic.hpp"

#include "MatchmakingMatchmaker_classes.hpp"
#include "MatchmakingMatchmaker_parameters.hpp"


SDK_NAMESPACE_START

// Function MatchmakingMatchmaker.Matchmaker.GetMatchmakingStatus
// (Final, Native, Public, HasOutParams, BlueprintCallable, BlueprintPure)
// Parameters:
// const struct FUniqueNetIdRepl&          UserIdRepl                                             (ConstParm, Parm, OutParm, ReferenceParm, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// struct FMatchmakerProgressInfo*         ProgressInfo                                           (Parm, OutParm, NativeAccessSpecifierPublic)

void AMatchmaker::GetMatchmakingStatus(const struct FUniqueNetIdRepl& UserIdRepl, struct FMatchmakerProgressInfo* ProgressInfo)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("Matchmaker", "GetMatchmakingStatus");

	Params::Matchmaker_GetMatchmakingStatus Parms{};

	Parms.UserIdRepl = std::move(UserIdRepl);

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	if (ProgressInfo != nullptr)
		*ProgressInfo = std::move(Parms.ProgressInfo);
}


// Function MatchmakingMatchmaker.Matchmaker.GetReadyState
// (Final, Native, Public, HasOutParams, BlueprintCallable, BlueprintPure)
// Parameters:
// const struct FUniqueNetIdRepl&          LocalUserId                                            (ConstParm, Parm, OutParm, ReferenceParm, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// const struct FUniqueNetIdRepl&          TargetUserId                                           (ConstParm, Parm, OutParm, ReferenceParm, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// bool*                                   bIsReady                                               (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void AMatchmaker::GetReadyState(const struct FUniqueNetIdRepl& LocalUserId, const struct FUniqueNetIdRepl& TargetUserId, bool* bIsReady)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("Matchmaker", "GetReadyState");

	Params::Matchmaker_GetReadyState Parms{};

	Parms.LocalUserId = std::move(LocalUserId);
	Parms.TargetUserId = std::move(TargetUserId);

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	if (bIsReady != nullptr)
		*bIsReady = Parms.bIsReady;
}


// Function MatchmakingMatchmaker.Matchmaker.IsMatchmaking
// (Final, Native, Public, HasOutParams, BlueprintCallable, BlueprintPure)
// Parameters:
// bool*                                   bIsMatchmaking                                         (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void AMatchmaker::IsMatchmaking(bool* bIsMatchmaking)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("Matchmaker", "IsMatchmaking");

	Params::Matchmaker_IsMatchmaking Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	if (bIsMatchmaking != nullptr)
		*bIsMatchmaking = Parms.bIsMatchmaking;
}


// Function MatchmakingMatchmaker.Matchmaker.OnCancelled
// (Event, Public, BlueprintEvent)

void AMatchmaker::OnCancelled()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("Matchmaker", "OnCancelled");

	UObject::ProcessEvent(Func, nullptr);
}


// Function MatchmakingMatchmaker.Matchmaker.OnError
// (Event, Public, BlueprintEvent)
// Parameters:
// const class FString&                    MatchmakingError                                       (Parm, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void AMatchmaker::OnError(const class FString& MatchmakingError)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("Matchmaker", "OnError");

	Params::Matchmaker_OnError Parms{};

	Parms.MatchmakingError = std::move(MatchmakingError);

	UObject::ProcessEvent(Func, &Parms);
}


// Function MatchmakingMatchmaker.Matchmaker.OnProgress
// (Event, Public, HasOutParams, BlueprintEvent)
// Parameters:
// const struct FMatchmakerProgressInfo&   ProgressInfo                                           (ConstParm, Parm, OutParm, ReferenceParm, NativeAccessSpecifierPublic)

void AMatchmaker::OnProgress(const struct FMatchmakerProgressInfo& ProgressInfo)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("Matchmaker", "OnProgress");

	Params::Matchmaker_OnProgress Parms{};

	Parms.ProgressInfo = std::move(ProgressInfo);

	UObject::ProcessEvent(Func, &Parms);
}


// Function MatchmakingMatchmaker.Matchmaker.SetReadyState
// (Final, Native, Public, HasOutParams, BlueprintCallable)
// Parameters:
// const struct FUniqueNetIdRepl&          UserId                                                 (ConstParm, Parm, OutParm, ReferenceParm, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// bool                                    bIsReady                                               (Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void AMatchmaker::SetReadyState(const struct FUniqueNetIdRepl& UserId, bool bIsReady)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("Matchmaker", "SetReadyState");

	Params::Matchmaker_SetReadyState Parms{};

	Parms.UserId = std::move(UserId);
	Parms.bIsReady = bIsReady;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function MatchmakingMatchmaker.MatchmakerSubmitMatchResults.SubmitMatchResults
// (Final, Native, Static, Public, BlueprintCallable)
// Parameters:
// class UMatchmakerSubsystem*             Subsystem_0                                            (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// const struct FUniqueNetIdRepl&          LocalUserId_0                                          (Parm, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// const TArray<float>&                    TeamScores_0                                           (Parm, ZeroConstructor, NativeAccessSpecifierPublic)
// class UMatchmakerSubmitMatchResults*    ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

class UMatchmakerSubmitMatchResults* UMatchmakerSubmitMatchResults::SubmitMatchResults(class UMatchmakerSubsystem* Subsystem_0, const struct FUniqueNetIdRepl& LocalUserId_0, const TArray<float>& TeamScores_0)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = StaticClass()->GetFunction("MatchmakerSubmitMatchResults", "SubmitMatchResults");

	Params::MatchmakerSubmitMatchResults_SubmitMatchResults Parms{};

	Parms.Subsystem_0 = Subsystem_0;
	Parms.LocalUserId_0 = std::move(LocalUserId_0);
	Parms.TeamScores_0 = std::move(TeamScores_0);

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	GetDefaultObj()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function MatchmakingMatchmaker.MatchmakerSubsystem.GetTeamAndSlotForPlayer
// (Final, Native, Public, HasOutParams, BlueprintCallable, BlueprintPure)
// Parameters:
// class APlayerController*                LocalPlayerController                                  (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// class APlayerState*                     TargetPlayerState                                      (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// bool*                                   Found                                                  (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// int32*                                  Team                                                   (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// int32*                                  slot                                                   (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void UMatchmakerSubsystem::GetTeamAndSlotForPlayer(class APlayerController* LocalPlayerController, class APlayerState* TargetPlayerState, bool* Found, int32* Team, int32* slot)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("MatchmakerSubsystem", "GetTeamAndSlotForPlayer");

	Params::MatchmakerSubsystem_GetTeamAndSlotForPlayer Parms{};

	Parms.LocalPlayerController = LocalPlayerController;
	Parms.TargetPlayerState = TargetPlayerState;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	if (Found != nullptr)
		*Found = Parms.Found;

	if (Team != nullptr)
		*Team = Parms.Team;

	if (slot != nullptr)
		*slot = Parms.slot;
}


// Function MatchmakingMatchmaker.MatchmakerSubsystem.GetTeamAndSlotForPlayerOnServer
// (Final, Native, Public, HasOutParams, BlueprintCallable, BlueprintPure)
// Parameters:
// class APlayerState*                     TargetPlayerState                                      (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// bool*                                   Found                                                  (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// int32*                                  Team                                                   (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// int32*                                  slot                                                   (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void UMatchmakerSubsystem::GetTeamAndSlotForPlayerOnServer(class APlayerState* TargetPlayerState, bool* Found, int32* Team, int32* slot)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("MatchmakerSubsystem", "GetTeamAndSlotForPlayerOnServer");

	Params::MatchmakerSubsystem_GetTeamAndSlotForPlayerOnServer Parms{};

	Parms.TargetPlayerState = TargetPlayerState;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	if (Found != nullptr)
		*Found = Parms.Found;

	if (Team != nullptr)
		*Team = Parms.Team;

	if (slot != nullptr)
		*slot = Parms.slot;
}


// Function MatchmakingMatchmaker.RedpointMatchmakerBlueprintFunctionLibrary.AreAllExpectedPlayersConnectedFromMatchmaker
// (Final, BlueprintAuthorityOnly, Native, Static, Public, BlueprintCallable)
// Parameters:
// class UGameInstance*                    GameInstance                                           (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// bool                                    ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

bool URedpointMatchmakerBlueprintFunctionLibrary::AreAllExpectedPlayersConnectedFromMatchmaker(class UGameInstance* GameInstance)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = StaticClass()->GetFunction("RedpointMatchmakerBlueprintFunctionLibrary", "AreAllExpectedPlayersConnectedFromMatchmaker");

	Params::RedpointMatchmakerBlueprintFunctionLibrary_AreAllExpectedPlayersConnectedFromMatchmaker Parms{};

	Parms.GameInstance = GameInstance;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	GetDefaultObj()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function MatchmakingMatchmaker.RedpointMatchmakerBlueprintFunctionLibrary.FindMatchmakerTeamPlayerStart
// (Final, BlueprintAuthorityOnly, Native, Static, Public, BlueprintCallable)
// Parameters:
// class APlayerState*                     PlayerState                                            (Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// class APlayerStart*                     ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

class APlayerStart* URedpointMatchmakerBlueprintFunctionLibrary::FindMatchmakerTeamPlayerStart(class APlayerState* PlayerState)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = StaticClass()->GetFunction("RedpointMatchmakerBlueprintFunctionLibrary", "FindMatchmakerTeamPlayerStart");

	Params::RedpointMatchmakerBlueprintFunctionLibrary_FindMatchmakerTeamPlayerStart Parms{};

	Parms.PlayerState = PlayerState;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	GetDefaultObj()->ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function MatchmakingMatchmaker.RedpointMatchmakerTeamComponent.GetSlot
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// int32                                   ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

int32 URedpointMatchmakerTeamComponent::GetSlot() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("RedpointMatchmakerTeamComponent", "GetSlot");

	Params::RedpointMatchmakerTeamComponent_GetSlot Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function MatchmakingMatchmaker.RedpointMatchmakerTeamComponent.GetTeam
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// int32                                   ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

int32 URedpointMatchmakerTeamComponent::GetTeam() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("RedpointMatchmakerTeamComponent", "GetTeam");

	Params::RedpointMatchmakerTeamComponent_GetTeam Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


SDK_NAMESPACE_END
