#pragma once

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

// Package: Matchmaking

#include "Basic.hpp"

#include "Matchmaking_classes.hpp"
#include "Matchmaking_parameters.hpp"


SDK_NAMESPACE_START

// Function Matchmaking.DedicatedServerMatchmakingBeaconClient.OnReserveForMatchResult
// (Net, NetReliable, Native, Event, Public, NetClient)
// Parameters:
// bool                                    bWasSuccessful                                         (Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void ADedicatedServerMatchmakingBeaconClient::OnReserveForMatchResult(bool bWasSuccessful)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("DedicatedServerMatchmakingBeaconClient", "OnReserveForMatchResult");

	Params::DedicatedServerMatchmakingBeaconClient_OnReserveForMatchResult Parms{};

	Parms.bWasSuccessful = bWasSuccessful;

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

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function Matchmaking.DedicatedServerMatchmakingBeaconClient.ReserveForMatch
// (Net, NetReliable, Native, Event, Public, NetServer)
// Parameters:
// const TArray<struct FDedicatedServerMatchmakingBeaconClientMatchMember>&MatchMembers                                           (ConstParm, Parm, ZeroConstructor, ReferenceParm, NativeAccessSpecifierPublic)
// const TArray<int32>&                    TeamSizes                                              (ConstParm, Parm, ZeroConstructor, ReferenceParm, NativeAccessSpecifierPublic)

void ADedicatedServerMatchmakingBeaconClient::ReserveForMatch(const TArray<struct FDedicatedServerMatchmakingBeaconClientMatchMember>& MatchMembers, const TArray<int32>& TeamSizes)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("DedicatedServerMatchmakingBeaconClient", "ReserveForMatch");

	Params::DedicatedServerMatchmakingBeaconClient_ReserveForMatch Parms{};

	Parms.MatchMembers = std::move(MatchMembers);
	Parms.TeamSizes = std::move(TeamSizes);

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

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function Matchmaking.DedicatedServerMatchmakingBeaconHost.MatchEnded
// (Final, Native, Public, BlueprintCallable)

void ADedicatedServerMatchmakingBeaconHost::MatchEnded()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("DedicatedServerMatchmakingBeaconHost", "MatchEnded");

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

	UObject::ProcessEvent(Func, nullptr);

	Func->FunctionFlags = Flgs;
}


// Function Matchmaking.DedicatedServerMatchmakingBeaconHost.GetCurrentReservation
// (Final, Native, Public, HasOutParams, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// bool*                                   bOutIsReserved                                         (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// struct FDedicatedServerReservation*     OutReservation                                         (Parm, OutParm, NativeAccessSpecifierPublic)

void ADedicatedServerMatchmakingBeaconHost::GetCurrentReservation(bool* bOutIsReserved, struct FDedicatedServerReservation* OutReservation) const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("DedicatedServerMatchmakingBeaconHost", "GetCurrentReservation");

	Params::DedicatedServerMatchmakingBeaconHost_GetCurrentReservation Parms{};

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

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

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

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


// Function Matchmaking.DedicatedServerMatchmakingBeaconHost.GetRemainingReservationMembers
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// TSet<class FString>                     ReturnValue                                            (Parm, OutParm, ReturnParm, NativeAccessSpecifierPublic)

TSet<class FString> ADedicatedServerMatchmakingBeaconHost::GetRemainingReservationMembers() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("DedicatedServerMatchmakingBeaconHost", "GetRemainingReservationMembers");

	Params::DedicatedServerMatchmakingBeaconHost_GetRemainingReservationMembers Parms{};

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

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function Matchmaking.DedicatedServerMatchmakingBeaconHost.IsMatchPlaying
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// bool                                    ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

bool ADedicatedServerMatchmakingBeaconHost::IsMatchPlaying() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("DedicatedServerMatchmakingBeaconHost", "IsMatchPlaying");

	Params::DedicatedServerMatchmakingBeaconHost_IsMatchPlaying Parms{};

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

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function Matchmaking.DedicatedServerMatchmakingBeaconHost.IsReserved
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// bool                                    ReturnValue                                            (Parm, OutParm, ZeroConstructor, ReturnParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

bool ADedicatedServerMatchmakingBeaconHost::IsReserved() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("DedicatedServerMatchmakingBeaconHost", "IsReserved");

	Params::DedicatedServerMatchmakingBeaconHost_IsReserved Parms{};

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

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


SDK_NAMESPACE_END
