-
Notifications
You must be signed in to change notification settings - Fork 0
/
SilentRedGameInstance.h
73 lines (41 loc) · 1.46 KB
/
SilentRedGameInstance.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "MenuSystem/MainMenuInterface.h"
#include "OnlineSubsystem.h"
#include "OnlineSessionInterface.h"
#include "SilentRedGameInstance.generated.h"
/**
*
*/
UCLASS()
class SILENTRED2_API USilentRedGameInstance : public UGameInstance, public IMainMenuInterface
{
GENERATED_BODY()
public:
USilentRedGameInstance(const FObjectInitializer & ObjectInitializer);
virtual void Init();
UFUNCTION(BlueprintCallable)
void LoadMenuWidget();
UFUNCTION(BlueprintCallable)
void InGameLoadMenu();
UFUNCTION(Exec)
void Host(FString ServerName) override;
UFUNCTION(Exec)
void Join(uint32 Index) override;
void RefreshServerList() override;
virtual void LoadMainMenu() override;
private:
TSubclassOf<class UUserWidget> MenuClass;
TSubclassOf<class UUserWidget> InGameMenuClass;
class UMainMenu* Menu;
IOnlineSessionPtr SessionInterface;
TSharedPtr<class FOnlineSessionSearch> SessionSearch;
void OnCreateSessionComplete(FName SessionName, bool Success);
void OnDestroySessionComplete(FName SessionName, bool Success);
void OnFindSessionComplete(bool Success);
void OnJoinSessionComplete(FName SessionName, EOnJoinSessionCompleteResult::Type Result);
FString DesiredServerName;
void CreateSession();
};