diff --git a/AdvancedSessions.uplugin b/AdvancedSessions/AdvancedSessions.uplugin similarity index 100% rename from AdvancedSessions.uplugin rename to AdvancedSessions/AdvancedSessions.uplugin diff --git a/Resources/Icon128.png b/AdvancedSessions/Resources/Icon128.png similarity index 100% rename from Resources/Icon128.png rename to AdvancedSessions/Resources/Icon128.png diff --git a/Source/AdvancedSessions/AdvancedSessions.Build.cs b/AdvancedSessions/Source/AdvancedSessions/AdvancedSessions.Build.cs similarity index 59% rename from Source/AdvancedSessions/AdvancedSessions.Build.cs rename to AdvancedSessions/Source/AdvancedSessions/AdvancedSessions.Build.cs index 3a64bda..8350802 100644 --- a/Source/AdvancedSessions/AdvancedSessions.Build.cs +++ b/AdvancedSessions/Source/AdvancedSessions/AdvancedSessions.Build.cs @@ -9,11 +9,5 @@ public class AdvancedSessions : ModuleRules PublicIncludePaths.AddRange(new string[] { "AdvancedSessions/Public" }); PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubsystem", "CoreUObject", "OnlineSubsystemUtils", "Networking", "Sockets"/*"Voice", "OnlineSubsystemSteam"*/ }); PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "Sockets", "Networking", "OnlineSubsystemUtils" /*"Voice", "Steamworks","OnlineSubsystemSteam"*/}); - - if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Linux) || (Target.Platform == UnrealTargetPlatform.Mac)) - { - PublicDependencyModuleNames.AddRange(new string[] { "Steamworks",/*"Voice",*/ "OnlineSubsystemSteam" }); - PublicIncludePaths.AddRange(new string[] { "../Plugins/Online/OnlineSubsystemSteam/Source/Private" });// This is dumb but it isn't very open - } } } \ No newline at end of file diff --git a/Source/AdvancedSessions/Classes/AdvancedExternalUILibrary.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedExternalUILibrary.h similarity index 100% rename from Source/AdvancedSessions/Classes/AdvancedExternalUILibrary.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedExternalUILibrary.h diff --git a/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h similarity index 100% rename from Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h diff --git a/Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h similarity index 100% rename from Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h diff --git a/Source/AdvancedSessions/Classes/AdvancedFriendsLibrary.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsLibrary.h similarity index 58% rename from Source/AdvancedSessions/Classes/AdvancedFriendsLibrary.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsLibrary.h index e8409d2..6c4dbf4 100644 --- a/Source/AdvancedSessions/Classes/AdvancedFriendsLibrary.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsLibrary.h @@ -20,15 +20,6 @@ //General Advanced Sessions Log DECLARE_LOG_CATEGORY_EXTERN(AdvancedFriendsLog, Log, All); -UENUM(Blueprintable) -enum class SteamAvatarSize : uint8 -{ - SteamAvatar_Small = 1, - SteamAvatar_Medium = 2, - SteamAvatar_Large = 3 -}; - - UCLASS() class UAdvancedFriendsLibrary : public UBlueprintFunctionLibrary { @@ -60,24 +51,4 @@ public: // Check if a UniqueNetId is a friend UFUNCTION(BlueprintPure, Category = "Online|AdvancedFriends|FriendsList") static void IsAFriend(APlayerController *PlayerController, const FBPUniqueNetId UniqueNetId, bool &IsFriend); - - // Get a texture of a valid friends avatar, STEAM ONLY, Returns invalid texture if the subsystem hasn't loaded that size of avatar yet - UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI", meta = (ExpandEnumAsExecs = "Result")) - static UTexture2D * GetSteamFriendAvatar(const FBPUniqueNetId UniqueNetId, EBlueprintAsyncResultSwitch &Result, SteamAvatarSize AvatarSize = SteamAvatarSize::SteamAvatar_Medium); - - // Preloads the avatar and name of a steam friend, return whether it is already available or not, STEAM ONLY, Takes time to actually load everything after this is called. - UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI") - static bool RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly = false); - - // Gets the level of a friends steam account, STEAM ONLY, Returns -1 if the steam level is not known, might need RequestSteamFriendInfo called first. - UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI") - static int32 GetFriendSteamLevel(const FBPUniqueNetId UniqueNetId); - - // Gets the persona name of a steam ID, STEAM ONLY, Returns empty if no result, might need RequestSteamFriendInfo called first. - UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI") - static FString GetSteamPersonaName(const FBPUniqueNetId UniqueNetId); - - // Creates a unique steam id directly from a string holding a uint64 value, useful for testing - UFUNCTION(BlueprintPure, Category = "Online|AdvancedFriends|SteamAPI") - static FBPUniqueNetId CreateSteamIDFromString(const FString SteamID64); }; diff --git a/Source/AdvancedSessions/Classes/AdvancedIdentityLibrary.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedIdentityLibrary.h similarity index 100% rename from Source/AdvancedSessions/Classes/AdvancedIdentityLibrary.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedIdentityLibrary.h diff --git a/Source/AdvancedSessions/Classes/AdvancedSessions.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessions.h similarity index 100% rename from Source/AdvancedSessions/Classes/AdvancedSessions.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessions.h diff --git a/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h similarity index 100% rename from Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h diff --git a/Source/AdvancedSessions/Classes/AdvancedVoiceLibrary.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedVoiceLibrary.h similarity index 100% rename from Source/AdvancedSessions/Classes/AdvancedVoiceLibrary.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedVoiceLibrary.h diff --git a/Source/AdvancedSessions/Classes/BlueprintDataDefinitions.h b/AdvancedSessions/Source/AdvancedSessions/Classes/BlueprintDataDefinitions.h similarity index 100% rename from Source/AdvancedSessions/Classes/BlueprintDataDefinitions.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/BlueprintDataDefinitions.h diff --git a/Source/AdvancedSessions/Classes/CancelFindSessionsCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/CancelFindSessionsCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/CancelFindSessionsCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/CancelFindSessionsCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/CreateSessionCallbackProxyAdvanced.h b/AdvancedSessions/Source/AdvancedSessions/Classes/CreateSessionCallbackProxyAdvanced.h similarity index 100% rename from Source/AdvancedSessions/Classes/CreateSessionCallbackProxyAdvanced.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/CreateSessionCallbackProxyAdvanced.h diff --git a/Source/AdvancedSessions/Classes/EndSessionCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/EndSessionCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/EndSessionCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/EndSessionCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h b/AdvancedSessions/Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h similarity index 100% rename from Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h diff --git a/Source/AdvancedSessions/Classes/GetFriendsCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/GetFriendsCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/GetFriendsCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/GetFriendsCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/GetRecentPlayersCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/GetRecentPlayersCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/GetRecentPlayersCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/GetRecentPlayersCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/GetUserPrivilegeCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/GetUserPrivilegeCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/GetUserPrivilegeCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/GetUserPrivilegeCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/LoginUserCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/LoginUserCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/LoginUserCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/LoginUserCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/LogoutUserCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/LogoutUserCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/LogoutUserCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/LogoutUserCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/OnlineSubSystemHeader.h b/AdvancedSessions/Source/AdvancedSessions/Classes/OnlineSubSystemHeader.h similarity index 100% rename from Source/AdvancedSessions/Classes/OnlineSubSystemHeader.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/OnlineSubSystemHeader.h diff --git a/Source/AdvancedSessions/Classes/SendFriendInviteCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/SendFriendInviteCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/SendFriendInviteCallbackProxy.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/SendFriendInviteCallbackProxy.h diff --git a/Source/AdvancedSessions/Classes/UpdateSessionCallbackProxyAdvanced.h b/AdvancedSessions/Source/AdvancedSessions/Classes/UpdateSessionCallbackProxyAdvanced.h similarity index 100% rename from Source/AdvancedSessions/Classes/UpdateSessionCallbackProxyAdvanced.h rename to AdvancedSessions/Source/AdvancedSessions/Classes/UpdateSessionCallbackProxyAdvanced.h diff --git a/Source/AdvancedSessions/Private/AdvancedExternalUILibrary.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedExternalUILibrary.cpp similarity index 100% rename from Source/AdvancedSessions/Private/AdvancedExternalUILibrary.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedExternalUILibrary.cpp diff --git a/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp similarity index 100% rename from Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp diff --git a/Source/AdvancedSessions/Private/AdvancedFriendsInterface.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsInterface.cpp similarity index 100% rename from Source/AdvancedSessions/Private/AdvancedFriendsInterface.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsInterface.cpp diff --git a/Source/AdvancedSessions/Private/AdvancedFriendsLibrary.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsLibrary.cpp similarity index 55% rename from Source/AdvancedSessions/Private/AdvancedFriendsLibrary.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsLibrary.cpp index 9f0cb99..6053e74 100644 --- a/Source/AdvancedSessions/Private/AdvancedFriendsLibrary.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsLibrary.cpp @@ -5,222 +5,9 @@ // This is taken directly from UE4 - OnlineSubsystemSteamPrivatePCH.h as a fix for the array_count macro -// @todo Steam: Steam headers trigger secure-C-runtime warnings in Visual C++. Rather than mess with _CRT_SECURE_NO_WARNINGS, we'll just -// disable the warnings locally. Remove when this is fixed in the SDK -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4996) -#endif - -#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX - -#pragma push_macro("ARRAY_COUNT") -#undef ARRAY_COUNT - -#include -#include - -#pragma pop_macro("ARRAY_COUNT") - -#endif - -// @todo Steam: See above -#ifdef _MSC_VER -#pragma warning(pop) -#endif - //General Log DEFINE_LOG_CATEGORY(AdvancedFriendsLog); - -int32 UAdvancedFriendsLibrary::GetFriendSteamLevel(const FBPUniqueNetId UniqueNetId) -{ - -#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX - if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) - { - UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!")); - return 0; - } - - if (SteamAPI_Init()) - { - uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); - - return SteamFriends()->GetFriendSteamLevel(id); - } -#endif - - return 0; - - -} - -FString UAdvancedFriendsLibrary::GetSteamPersonaName(const FBPUniqueNetId UniqueNetId) -{ - -#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX - if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) - { - UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetSteamPersonaName Had a bad UniqueNetId!")); - return FString(TEXT("")); - } - - if (SteamAPI_Init()) - { - uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); - const char* PersonaName = SteamFriends()->GetFriendPersonaName(id); - return FString(UTF8_TO_TCHAR(PersonaName)); - } -#endif - - return FString(TEXT("")); -} - -FBPUniqueNetId UAdvancedFriendsLibrary::CreateSteamIDFromString(const FString SteamID64) -{ - FBPUniqueNetId netId; - -#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX - if (!(SteamID64.Len() > 0)) - { - UE_LOG(AdvancedFriendsLog, Warning, TEXT("CreateSteamIDFromString Had a bad UniqueNetId!")); - return netId; - } - - if (SteamAPI_Init()) - { - // Already does the conversion - TSharedPtr ValueID(new const FUniqueNetIdSteam(SteamID64)); - //FCString::Atoi64(*SteamID64)); - - netId.SetUniqueNetId(ValueID); - return netId; - } -#endif - - return netId; -} - -bool UAdvancedFriendsLibrary::RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly) -{ -#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX - if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) - { - UE_LOG(AdvancedFriendsLog, Warning, TEXT("RequestSteamFriendInfo Had a bad UniqueNetId!")); - return false; - } - - if (SteamAPI_Init()) - { - uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); - - return !SteamFriends()->RequestUserInformation(id, bRequireNameOnly); - } -#endif - - UE_LOG(AdvancedFriendsLog, Warning, TEXT("RequestSteamFriendInfo Couldn't init steamAPI!")); - return false; -} - -UTexture2D * UAdvancedFriendsLibrary::GetSteamFriendAvatar(const FBPUniqueNetId UniqueNetId, EBlueprintAsyncResultSwitch &Result, SteamAvatarSize AvatarSize) -{ -#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX - if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) - { - UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetSteamFriendAvatar Had a bad UniqueNetId!")); - Result = EBlueprintAsyncResultSwitch::OnFailure; - return nullptr; - } - - uint32 Width = 0; - uint32 Height = 0; - - if (SteamAPI_Init()) - { - //Getting the PictureID from the SteamAPI and getting the Size with the ID - //virtual bool RequestUserInformation( CSteamID steamIDUser, bool bRequireNameOnly ) = 0; - - - uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); - int Picture = 0; - - switch(AvatarSize) - { - case SteamAvatarSize::SteamAvatar_Small: Picture = SteamFriends()->GetSmallFriendAvatar(id); break; - case SteamAvatarSize::SteamAvatar_Medium: Picture = SteamFriends()->GetMediumFriendAvatar(id); break; - case SteamAvatarSize::SteamAvatar_Large: Picture = SteamFriends()->GetLargeFriendAvatar(id); break; - default: break; - } - - if (Picture == -1) - { - Result = EBlueprintAsyncResultSwitch::AsyncLoading; - return NULL; - } - - SteamUtils()->GetImageSize(Picture, &Width, &Height); - - // STOLEN FROM ANSWERHUB :p, then fixed because answerhub wasn't releasing the memory O.o - // Also fixed image pixel format and switched to a memcpy instead of manual iteration. - // At some point I should probably reply to that answerhub post with these fixes to prevent people killing their games..... - - if (Width > 0 && Height > 0) - { - //Creating the buffer "oAvatarRGBA" and then filling it with the RGBA Stream from the Steam Avatar - uint8 *oAvatarRGBA = new uint8[Width * Height * 4]; - - - //Filling the buffer with the RGBA Stream from the Steam Avatar and creating a UTextur2D to parse the RGBA Steam in - SteamUtils()->GetImageRGBA(Picture, (uint8*)oAvatarRGBA, 4 * Height * Width * sizeof(char)); - - - // Removed as I changed the image bit code to be RGB, I think the original author was unaware that there were different pixel formats - /* - //Swap R and B channels because for some reason the games whack - for (uint32 i = 0; i < (Width * Height * 4); i += 4) - { - uint8 Temp = oAvatarRGBA[i + 0]; - oAvatarRGBA[i + 0] = oAvatarRGBA[i + 2]; - oAvatarRGBA[i + 2] = Temp; - }*/ - - UTexture2D* Avatar = UTexture2D::CreateTransient(Width, Height, PF_R8G8B8A8); - - // Switched to a Memcpy instead of byte by byte transer - uint8* MipData = (uint8*)Avatar->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE); - FMemory::Memcpy(MipData, (void*)oAvatarRGBA, Height * Width * 4); - Avatar->PlatformData->Mips[0].BulkData.Unlock(); - - // Original implementation was missing this!! - // the hell man...... - delete[] oAvatarRGBA; - - //Setting some Parameters for the Texture and finally returning it - Avatar->PlatformData->NumSlices = 1; - Avatar->NeverStream = true; - //Avatar->CompressionSettings = TC_EditorIcon; - - Avatar->UpdateResource(); - - Result = EBlueprintAsyncResultSwitch::OnSuccess; - return Avatar; - } - else - { - UE_LOG(AdvancedFriendsLog, Warning, TEXT("Bad Height / Width with steam avatar!")); - } - - Result = EBlueprintAsyncResultSwitch::OnFailure; - return nullptr; - } -#endif - - UE_LOG(AdvancedFriendsLog, Warning, TEXT("STEAM Couldn't be verified as initialized")); - Result = EBlueprintAsyncResultSwitch::OnFailure; - return nullptr; -} - void UAdvancedFriendsLibrary::SendSessionInviteToFriends(APlayerController *PlayerController, const TArray &Friends, EBlueprintResultSwitch &Result) { if (!PlayerController) diff --git a/Source/AdvancedSessions/Private/AdvancedIdentityLibrary.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedIdentityLibrary.cpp similarity index 100% rename from Source/AdvancedSessions/Private/AdvancedIdentityLibrary.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedIdentityLibrary.cpp diff --git a/Source/AdvancedSessions/Private/AdvancedSessions.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessions.cpp similarity index 100% rename from Source/AdvancedSessions/Private/AdvancedSessions.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessions.cpp diff --git a/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp similarity index 100% rename from Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp diff --git a/Source/AdvancedSessions/Private/AdvancedVoiceLibrary.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedVoiceLibrary.cpp similarity index 100% rename from Source/AdvancedSessions/Private/AdvancedVoiceLibrary.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/AdvancedVoiceLibrary.cpp diff --git a/Source/AdvancedSessions/Private/CancelFindSessionsCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/CancelFindSessionsCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/CancelFindSessionsCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/CancelFindSessionsCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp similarity index 100% rename from Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp diff --git a/Source/AdvancedSessions/Private/EndSessionCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/EndSessionCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/EndSessionCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/EndSessionCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp similarity index 100% rename from Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp diff --git a/Source/AdvancedSessions/Private/GetFriendsCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/GetFriendsCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/GetFriendsCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/GetFriendsCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/GetRecentPlayersCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/GetRecentPlayersCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/GetRecentPlayersCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/GetRecentPlayersCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/GetUserPrivilegeCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/GetUserPrivilegeCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/GetUserPrivilegeCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/GetUserPrivilegeCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/LoginUserCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/LoginUserCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/LoginUserCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/LoginUserCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/LogoutUserCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/LogoutUserCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/LogoutUserCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/LogoutUserCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/SendFriendInviteCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/SendFriendInviteCallbackProxy.cpp similarity index 100% rename from Source/AdvancedSessions/Private/SendFriendInviteCallbackProxy.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/SendFriendInviteCallbackProxy.cpp diff --git a/Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp similarity index 100% rename from Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp rename to AdvancedSessions/Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp diff --git a/AdvancedSteamSessions/AdvancedSteamSessions.uplugin b/AdvancedSteamSessions/AdvancedSteamSessions.uplugin new file mode 100644 index 0000000..ea60849 --- /dev/null +++ b/AdvancedSteamSessions/AdvancedSteamSessions.uplugin @@ -0,0 +1,21 @@ +{ + "FileVersion" : 3, + + "FriendlyName" : "Advanced Steam Sessions", + "Version" : 1.9, + "VersionName": "1.9", + "EngineVersion" : 1579795, + "Description" : "Adds new blueprint functions to handle more advanced session operations in Steam. REQUIRES ADVANCED SESSIONS", + "Category" : "Advanced Sessions Plugin", + "CreatedBy" : "Joshua Statzer", + "CreatedByURL" : "N/A", + + "Modules" : + [ + { + "Name" : "AdvancedSteamSessions", + "Type" : "RunTime", + "LoadingPhase" : "PreDefault" + } + ] +} \ No newline at end of file diff --git a/AdvancedSteamSessions/Resources/Icon128.png b/AdvancedSteamSessions/Resources/Icon128.png new file mode 100644 index 0000000..c7bbea3 Binary files /dev/null and b/AdvancedSteamSessions/Resources/Icon128.png differ diff --git a/AdvancedSteamSessions/Source/AdvancedSteamSessions/AdvancedSteamSessions.Build.cs b/AdvancedSteamSessions/Source/AdvancedSteamSessions/AdvancedSteamSessions.Build.cs new file mode 100644 index 0000000..b870c63 --- /dev/null +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/AdvancedSteamSessions.Build.cs @@ -0,0 +1,17 @@ +using UnrealBuildTool; +using System.IO; + +public class AdvancedSteamSessions : ModuleRules +{ + public AdvancedSteamSessions(TargetInfo Target) + { + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubsystem", "CoreUObject", "OnlineSubsystemUtils", "Networking", "Sockets", "AdvancedSessions"/*"Voice", "OnlineSubsystemSteam"*/ }); + PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "Sockets", "Networking", "OnlineSubsystemUtils" /*"Voice", "Steamworks","OnlineSubsystemSteam"*/}); + + if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Linux) || (Target.Platform == UnrealTargetPlatform.Mac)) + { + PublicDependencyModuleNames.AddRange(new string[] { "Steamworks",/*"Voice",*/ "OnlineSubsystemSteam" }); + PublicIncludePaths.AddRange(new string[] { "../Plugins/Online/OnlineSubsystemSteam/Source/Private" });// This is dumb but it isn't very open + } + } +} \ No newline at end of file diff --git a/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamFriendsLibrary.h b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamFriendsLibrary.h new file mode 100644 index 0000000..6d99591 --- /dev/null +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamFriendsLibrary.h @@ -0,0 +1,59 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once +#include "OnlineSubSystemHeader.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "Online.h" +#include "OnlineSubsystem.h" +#include "OnlineFriendsInterface.h" +#include "OnlineUserInterface.h" +#include "OnlineMessageInterface.h" +#include "OnlinePresenceInterface.h" +#include "Engine/GameInstance.h" +#include "OnlineSessionInterface.h" + +#include "UObjectIterator.h" + +#include "AdvancedSteamFriendsLibrary.generated.h" + + +//General Advanced Sessions Log +DECLARE_LOG_CATEGORY_EXTERN(AdvancedSteamFriendsLog, Log, All); + +UENUM(Blueprintable) +enum class SteamAvatarSize : uint8 +{ + SteamAvatar_Small = 1, + SteamAvatar_Medium = 2, + SteamAvatar_Large = 3 +}; + + +UCLASS() +class UAdvancedSteamFriendsLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() +public: + + //********* Friend List Functions *************// + + // Get a texture of a valid friends avatar, STEAM ONLY, Returns invalid texture if the subsystem hasn't loaded that size of avatar yet + UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI", meta = (ExpandEnumAsExecs = "Result")) + static UTexture2D * GetSteamFriendAvatar(const FBPUniqueNetId UniqueNetId, EBlueprintAsyncResultSwitch &Result, SteamAvatarSize AvatarSize = SteamAvatarSize::SteamAvatar_Medium); + + // Preloads the avatar and name of a steam friend, return whether it is already available or not, STEAM ONLY, Takes time to actually load everything after this is called. + UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI") + static bool RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly = false); + + // Gets the level of a friends steam account, STEAM ONLY, Returns -1 if the steam level is not known, might need RequestSteamFriendInfo called first. + UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI") + static int32 GetFriendSteamLevel(const FBPUniqueNetId UniqueNetId); + + // Gets the persona name of a steam ID, STEAM ONLY, Returns empty if no result, might need RequestSteamFriendInfo called first. + UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI") + static FString GetSteamPersonaName(const FBPUniqueNetId UniqueNetId); + + // Creates a unique steam id directly from a string holding a uint64 value, useful for testing + UFUNCTION(BlueprintPure, Category = "Online|AdvancedFriends|SteamAPI") + static FBPUniqueNetId CreateSteamIDFromString(const FString SteamID64); +}; diff --git a/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamSessions.h b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamSessions.h new file mode 100644 index 0000000..7442f25 --- /dev/null +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamSessions.h @@ -0,0 +1,12 @@ +#pragma once + +#include "OnlineSubSystemHeader.h" +#include "ModuleManager.h" + +class AdvancedSteamSessions : public IModuleInterface +{ +public: + /** IModuleInterface implementation */ + void StartupModule(); + void ShutdownModule(); +}; \ No newline at end of file diff --git a/Source/AdvancedSessions/Classes/SteamFuncs/AdvancedSteamWorkshopLibrary.h b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamWorkshopLibrary.h similarity index 100% rename from Source/AdvancedSessions/Classes/SteamFuncs/AdvancedSteamWorkshopLibrary.h rename to AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/AdvancedSteamWorkshopLibrary.h diff --git a/Source/AdvancedSessions/Classes/SteamFuncs/SteamWSRequestUGCDetailsCallbackProxy.h b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/SteamWSRequestUGCDetailsCallbackProxy.h similarity index 100% rename from Source/AdvancedSessions/Classes/SteamFuncs/SteamWSRequestUGCDetailsCallbackProxy.h rename to AdvancedSteamSessions/Source/AdvancedSteamSessions/Classes/SteamWSRequestUGCDetailsCallbackProxy.h diff --git a/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamFriendsLibrary.cpp b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamFriendsLibrary.cpp new file mode 100644 index 0000000..07feb69 --- /dev/null +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamFriendsLibrary.cpp @@ -0,0 +1,221 @@ +// Fill out your copyright notice in the Description page of Project Settings. +#include "OnlineSubSystemHeader.h" +#include "AdvancedSteamFriendsLibrary.h" + + +// This is taken directly from UE4 - OnlineSubsystemSteamPrivatePCH.h as a fix for the array_count macro + +// @todo Steam: Steam headers trigger secure-C-runtime warnings in Visual C++. Rather than mess with _CRT_SECURE_NO_WARNINGS, we'll just +// disable the warnings locally. Remove when this is fixed in the SDK +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4996) +#endif + +#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX + +#pragma push_macro("ARRAY_COUNT") +#undef ARRAY_COUNT + +#include +#include +#pragma pop_macro("ARRAY_COUNT") + +#endif + +// @todo Steam: See above +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +//General Log +DEFINE_LOG_CATEGORY(AdvancedSteamFriendsLog); + + +int32 UAdvancedSteamFriendsLibrary::GetFriendSteamLevel(const FBPUniqueNetId UniqueNetId) +{ + +#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX + if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) + { + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!")); + return 0; + } + + if (SteamAPI_Init()) + { + uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); + + return SteamFriends()->GetFriendSteamLevel(id); + } +#endif + + return 0; + + +} + +FString UAdvancedSteamFriendsLibrary::GetSteamPersonaName(const FBPUniqueNetId UniqueNetId) +{ + +#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX + if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) + { + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamPersonaName Had a bad UniqueNetId!")); + return FString(TEXT("")); + } + + if (SteamAPI_Init()) + { + uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); + const char* PersonaName = SteamFriends()->GetFriendPersonaName(id); + return FString(UTF8_TO_TCHAR(PersonaName)); + } +#endif + + return FString(TEXT("")); +} + +FBPUniqueNetId UAdvancedSteamFriendsLibrary::CreateSteamIDFromString(const FString SteamID64) +{ + FBPUniqueNetId netId; + +#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX + if (!(SteamID64.Len() > 0)) + { + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("CreateSteamIDFromString Had a bad UniqueNetId!")); + return netId; + } + + if (SteamAPI_Init()) + { + // Already does the conversion + TSharedPtr ValueID(new const FUniqueNetIdSteam(SteamID64)); + //FCString::Atoi64(*SteamID64)); + + netId.SetUniqueNetId(ValueID); + return netId; + } +#endif + + return netId; +} + +bool UAdvancedSteamFriendsLibrary::RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly) +{ +#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX + if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) + { + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("RequestSteamFriendInfo Had a bad UniqueNetId!")); + return false; + } + + if (SteamAPI_Init()) + { + uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); + + return !SteamFriends()->RequestUserInformation(id, bRequireNameOnly); + } +#endif + + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("RequestSteamFriendInfo Couldn't init steamAPI!")); + return false; +} + +UTexture2D * UAdvancedSteamFriendsLibrary::GetSteamFriendAvatar(const FBPUniqueNetId UniqueNetId, EBlueprintAsyncResultSwitch &Result, SteamAvatarSize AvatarSize) +{ +#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX + if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid()) + { + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamFriendAvatar Had a bad UniqueNetId!")); + Result = EBlueprintAsyncResultSwitch::OnFailure; + return nullptr; + } + + uint32 Width = 0; + uint32 Height = 0; + + if (SteamAPI_Init()) + { + //Getting the PictureID from the SteamAPI and getting the Size with the ID + //virtual bool RequestUserInformation( CSteamID steamIDUser, bool bRequireNameOnly ) = 0; + + + uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes()); + int Picture = 0; + + switch(AvatarSize) + { + case SteamAvatarSize::SteamAvatar_Small: Picture = SteamFriends()->GetSmallFriendAvatar(id); break; + case SteamAvatarSize::SteamAvatar_Medium: Picture = SteamFriends()->GetMediumFriendAvatar(id); break; + case SteamAvatarSize::SteamAvatar_Large: Picture = SteamFriends()->GetLargeFriendAvatar(id); break; + default: break; + } + + if (Picture == -1) + { + Result = EBlueprintAsyncResultSwitch::AsyncLoading; + return NULL; + } + + SteamUtils()->GetImageSize(Picture, &Width, &Height); + + // STOLEN FROM ANSWERHUB :p, then fixed because answerhub wasn't releasing the memory O.o + // Also fixed image pixel format and switched to a memcpy instead of manual iteration. + // At some point I should probably reply to that answerhub post with these fixes to prevent people killing their games..... + + if (Width > 0 && Height > 0) + { + //Creating the buffer "oAvatarRGBA" and then filling it with the RGBA Stream from the Steam Avatar + uint8 *oAvatarRGBA = new uint8[Width * Height * 4]; + + + //Filling the buffer with the RGBA Stream from the Steam Avatar and creating a UTextur2D to parse the RGBA Steam in + SteamUtils()->GetImageRGBA(Picture, (uint8*)oAvatarRGBA, 4 * Height * Width * sizeof(char)); + + + // Removed as I changed the image bit code to be RGB, I think the original author was unaware that there were different pixel formats + /* + //Swap R and B channels because for some reason the games whack + for (uint32 i = 0; i < (Width * Height * 4); i += 4) + { + uint8 Temp = oAvatarRGBA[i + 0]; + oAvatarRGBA[i + 0] = oAvatarRGBA[i + 2]; + oAvatarRGBA[i + 2] = Temp; + }*/ + + UTexture2D* Avatar = UTexture2D::CreateTransient(Width, Height, PF_R8G8B8A8); + + // Switched to a Memcpy instead of byte by byte transer + uint8* MipData = (uint8*)Avatar->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE); + FMemory::Memcpy(MipData, (void*)oAvatarRGBA, Height * Width * 4); + Avatar->PlatformData->Mips[0].BulkData.Unlock(); + + // Original implementation was missing this!! + // the hell man...... + delete[] oAvatarRGBA; + + //Setting some Parameters for the Texture and finally returning it + Avatar->PlatformData->NumSlices = 1; + Avatar->NeverStream = true; + //Avatar->CompressionSettings = TC_EditorIcon; + + Avatar->UpdateResource(); + + Result = EBlueprintAsyncResultSwitch::OnSuccess; + return Avatar; + } + else + { + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("Bad Height / Width with steam avatar!")); + } + + Result = EBlueprintAsyncResultSwitch::OnFailure; + return nullptr; + } +#endif + + UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("STEAM Couldn't be verified as initialized")); + Result = EBlueprintAsyncResultSwitch::OnFailure; + return nullptr; +} \ No newline at end of file diff --git a/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamSessions.cpp b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamSessions.cpp new file mode 100644 index 0000000..3bda518 --- /dev/null +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamSessions.cpp @@ -0,0 +1,13 @@ +//#include "StandAlonePrivatePCH.h" +#include "OnlineSubSystemHeader.h" +#include "AdvancedSteamSessions.h" + +void AdvancedSteamSessions::StartupModule() +{ +} + +void AdvancedSteamSessions::ShutdownModule() +{ +} + +IMPLEMENT_MODULE(AdvancedSteamSessions, AdvancedSteamSessions) \ No newline at end of file diff --git a/Source/AdvancedSessions/Private/SteamFuncs/AdvancedSteamWorkshopLibrary.cpp b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamWorkshopLibrary.cpp similarity index 93% rename from Source/AdvancedSessions/Private/SteamFuncs/AdvancedSteamWorkshopLibrary.cpp rename to AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamWorkshopLibrary.cpp index 8e0b1c2..dde3d34 100644 --- a/Source/AdvancedSessions/Private/SteamFuncs/AdvancedSteamWorkshopLibrary.cpp +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/AdvancedSteamWorkshopLibrary.cpp @@ -1,6 +1,6 @@ // Fill out your copyright notice in the Description page of Project Settings. #include "OnlineSubSystemHeader.h" -#include "SteamFuncs/AdvancedSteamWorkshopLibrary.h" +#include "AdvancedSteamWorkshopLibrary.h" //General Log DEFINE_LOG_CATEGORY(AdvancedSteamWorkshopLog); diff --git a/Source/AdvancedSessions/Private/SteamFuncs/SteamWSRequestUGCDetailsCallbackProxy.cpp b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/SteamWSRequestUGCDetailsCallbackProxy.cpp similarity index 95% rename from Source/AdvancedSessions/Private/SteamFuncs/SteamWSRequestUGCDetailsCallbackProxy.cpp rename to AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/SteamWSRequestUGCDetailsCallbackProxy.cpp index 241d541..ea8e620 100644 --- a/Source/AdvancedSessions/Private/SteamFuncs/SteamWSRequestUGCDetailsCallbackProxy.cpp +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/Private/SteamWSRequestUGCDetailsCallbackProxy.cpp @@ -1,7 +1,7 @@ // Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #include "OnlineSubSystemHeader.h" -#include "SteamFuncs/SteamWSRequestUGCDetailsCallbackProxy.h" +#include "SteamWSRequestUGCDetailsCallbackProxy.h" ////////////////////////////////////////////////////////////////////////// // UEndSessionCallbackProxy