#pragma once

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

// Package: CommonLoadingScreen

#include "Basic.hpp"

#include "CoreUObject_classes.hpp"
#include "Engine_classes.hpp"


SDK_NAMESPACE_START

// Class CommonLoadingScreen.LoadingProcessInterface
// 0x0000 (0x0000 - 0x0000)
class ILoadingProcessInterface final
{
public:
	bool K2_ShouldShowLoadingScreen(class FString* OutDebugReason);

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

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_ILoadingProcessInterface;

// Class CommonLoadingScreen.LoadingProcessTask
// 0x0018 (0x0040 - 0x0028)
class ULoadingProcessTask final : public UObject
{
public:
	uint8                                         Pad_28[0x18];                                      // 0x0028(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class ULoadingProcessTask* CreateLoadingScreenProcessTask(class UObject* WorldContextObject, const class FString& ShowLoadingScreenReason);

	void SetShowLoadingScreenReason(const class FString& InDebugReason);
	void Unregister();

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

// Class CommonLoadingScreen.LoadingScreenManager
// 0x0100 (0x0130 - 0x0030)
class ULoadingScreenManager final : public UGameInstanceSubsystem
{
public:
	uint8                                         Pad_30[0x8];                                       // 0x0030(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(bool bIsActive)> OnShowLoadingScreenAdditionalSecsTriggered;       // 0x0038(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const class FString& MapName)> OnPreLoadMapTriggered;              // 0x0048(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void()>              OnPostLoadMapTriggered;                            // 0x0058(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const class FString& MapName)> OnSeamlessTravelStart;              // 0x0068(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(bool bNewState)> OnLoadingScreenVisibilityChangedDelegateDynamic;  // 0x0078(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_88[0xA8];                                      // 0x0088(0x00A8)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static void K2_SetLoadingScreenCustomText(class UWorld* WorldContextObject, const class FString& NewText);

	void AddLoadingScreenWatcher(class UObject* Object);
	void RemoveLoadingScreenWatcher(class UObject* Object);

	class FString GetCurrentLoadingMap() const;
	class FString GetDebugReasonForShowingOrHidingLoadingScreen() const;
	class FString GetLoadingScreenCustomText() const;
	bool GetLoadingScreenDisplayStatus() const;

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

SDK_NAMESPACE_END
