Space Plunder
Loading...
Searching...
No Matches
SteamFriendsData.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "SteamFriendsData.generated.h"
7
8UENUM(BlueprintType)
15
16
17// Boy oh boy is this a dirty hack, but I can't figure out a good way to do it otherwise at the moment
18// The UniqueNetId is an abstract class so I can't exactly re-initialize it to make a shared pointer on some functions
19// So I made the blueprintable UniqueNetID into a dual variable struct with access functions and I am converting the const var for the pointer
20// I really need to re-think this later
21USTRUCT(BlueprintType)
23{
24 GENERATED_BODY()
25
26private:
28
29
30public:
31 TSharedPtr<const FUniqueNetId> UniqueNetId;
32 const FUniqueNetId * UniqueNetIdPtr;
33
34 void SetUniqueNetId(const TSharedPtr<const FUniqueNetId> &ID)
35 {
36 bUseDirectPointer = false;
37 UniqueNetIdPtr = nullptr;
38 UniqueNetId = ID;
39 }
40
41 void SetUniqueNetId(const FUniqueNetId *ID)
42 {
43 bUseDirectPointer = true;
44 UniqueNetIdPtr = ID;
45 }
46
47 bool IsValid() const
48 {
49 if (bUseDirectPointer && UniqueNetIdPtr != nullptr && UniqueNetIdPtr->IsValid())
50 {
51 return true;
52 }
53 else if (UniqueNetId.IsValid())
54 {
55 return true;
56 }
57 else
58 return false;
59
60 }
61
62 const FUniqueNetId* GetUniqueNetId() const
63 {
64 if (bUseDirectPointer && UniqueNetIdPtr != nullptr)
65 {
66 // No longer converting to non const as all functions now pass const UniqueNetIds
67 return /*const_cast<FUniqueNetId*>*/(UniqueNetIdPtr);
68 }
69 else if (UniqueNetId.IsValid())
70 {
71 return UniqueNetId.Get();
72 }
73 else
74 return nullptr;
75 }
76
78 {
79 bUseDirectPointer = false;
80 UniqueNetIdPtr = nullptr;
81 }
82};
83
84
85
89class STATSINTEGRATION_API SteamFriendsData
90{
91public:
92};
ESteamAvatarSize
Definition SteamFriendsData.h:10
@ SteamAvatar_Small
Definition SteamFriendsData.h:11
@ SteamAvatar_Medium
Definition SteamFriendsData.h:12
@ SteamAvatar_Large
Definition SteamFriendsData.h:13
Definition SteamFriendsData.h:90
Definition SteamFriendsData.h:23
void SetUniqueNetId(const TSharedPtr< const FUniqueNetId > &ID)
Definition SteamFriendsData.h:34
FSteamUniqueNetId()
Definition SteamFriendsData.h:77
const FUniqueNetId * UniqueNetIdPtr
Definition SteamFriendsData.h:32
void SetUniqueNetId(const FUniqueNetId *ID)
Definition SteamFriendsData.h:41
const FUniqueNetId * GetUniqueNetId() const
Definition SteamFriendsData.h:62
TSharedPtr< const FUniqueNetId > UniqueNetId
Definition SteamFriendsData.h:31
bool bUseDirectPointer
Definition SteamFriendsData.h:27
bool IsValid() const
Definition SteamFriendsData.h:47