Skip to content

Commit

Permalink
2024.6
Browse files Browse the repository at this point in the history
Updates

* Unreal 5.4 fully supported on all platforms
* NativeSDK updated to 2024.6 release
* UI Input Glyphs updated for platform compliance
* `FModioModInfo::Price` and related delegate parameters updated to `FModioUnsigned64` and `uint64` for C++ and BP respectively

Bugfixes

* Fix a crash on filter category switching in the UI

Deprecations

* This will be the last Unreal Plugin release with official Unreal 5.1 support.
* In the 2024.9 release, the UI implementation included in the plugin will be migrating to its own dedicated plugin and repository.
  • Loading branch information
stephenwhittle committed Jun 27, 2024
1 parent 7415f3f commit 74b8977
Show file tree
Hide file tree
Showing 224 changed files with 602 additions and 527 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/PlayStation/PS_Circle.uasset
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/PlayStation/PS_Cross.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/PlayStation/PS_L1.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/PlayStation/PS_L2.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/PlayStation/PS_R1.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/PlayStation/PS_R2.uasset
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/PlayStation/PS_Square.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_A.uasset
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_B.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_LB.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_LS_Press.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_LT.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_Menu.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_RB.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_RS_Press.uasset
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_RT.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_X.uasset
Binary file not shown.
Binary file not shown.
Binary file modified Content/UI5/Default/Platform/Input/Xbox/Xbox_Y.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
68 changes: 65 additions & 3 deletions Doc/android.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,68 @@
== Android Guide

=== Single Sign-On
=== Single Sign-On (5.4 onwards)

As of UE5.4, there is better support for obtaining an IdToken for Google Authentication. However there are still some changes that need to be made.

If you are on a Source build, open `Engine\Plugins\Online\OnlineSubsystemGoogle\OnlineSubsystemGoogle.uplugin` and add Android to the `PlatformAllowList` array. If you are on a Launcher build, you can simply copy this plugin from this directory into your projects Plugins directory and make the appropriate change.

==== Configuration

Next, update your AndroidEngine.ini file to contain the following:

[source]
----
[OnlineSubsystem]
DefaultPlatformService=GooglePlay
NativePlatformService=Google
[OnlineSubsystemGoogle]
bEnabled=True
ClientId=your-client-id-here
ServerClientId=your-server-client-id-here
[OnlineSubsystemGoogle.OnlineIdentityGoogle]
+ScopeFields="email"
+ScopeFields="profile"
+ScopeFields="https://www.googleapis.com/auth/userinfo.email"
+ScopeFields="https://www.googleapis.com/auth/userinfo.profile"
bRequestIdToken=true
bRequestOfflineAccess=true
----

This will ensure that you are using OnlineSubsystemGoogle as the native platform OSS in order to perform SSO.

`bRequestIdToken` will request an IdToken that you can pass to mod.io's authentication service. `bRequestOfflineAccess` will request a server-side token that can be used as an alternative to the IdToken.

Ensure that you replace the ClientId and ServerClientId with your client IDs from Google Cloud Console. The ClientId should be the Android OAuth Credential that you have linked to your title in Google Play Console. ServerClientId should be the Web Application OAuth Credential that you configured.

==== Getting the Token

Once you have configured the above options, you should be able to obtain either an IdToken or ServerAuthCode that you can use with mod.io authentication.

[source,c++]
----
const IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::GetByPlatform();
const IOnlineIdentityPtr OnlineIdentity = OnlineSubsystem->GetIdentityInterface();
OnlineIdentity->AddOnLoginCompleteDelegate_Handle(0, NativeLoginComplete);
OnlineIdentity->Login(0, FOnlineAccountCredentials());
// In the NativeLoginComplete delegate, however you set it up, if it was a successful login, you can then obtain the Server Auth Token as follows:
FString IdToken, ServerAuthToken;
UserAccount.Get()->GetAuthAttribute(AUTH_ATTR_ID_TOKEN, IdToken);
UserAccount.Get()->GetAuthAttribute(AUTH_ATTR_AUTHORIZATION_CODE, ServerAuthToken);
// Now perform Auth to the mod.io service
AuthParams.AuthToken = ServerAuthToken;
AuthParams.bUserHasAcceptedTerms = true;
// Alternatively you could set AuthParams.AuthToken = IdToken and use EModioAuthenticationProvider::GoogleIDToken
ModioSubsystem->AuthenticateUserExternalAsync(AuthParams, EModioAuthenticationProvider::GoogleServerSideToken, FOnErrorOnlyDelegateFast::CreateUObject(this, OnAuthenticationComplete));
---
=== Single Sign-On (Pre-5.4)
For Unreal Engine versions before 5.4, you need to make some engine-level modifications in order for Android SSO to work. You must be using a source build rather than an engine build.
Expand All @@ -24,7 +86,7 @@ private String getAuthTokenJsonStr(GoogleSignInAccount acct)
Finally, Open OnlineSubsystemGoogle.uplugin and add Android to the `PlatformAllowList`` array.
=== Configuration
==== Configuration
Once you have made the above changes, update your AndroidEngine.ini to contain the following:
Expand All @@ -50,7 +112,7 @@ This will ensure that you are using OnlineSubsystemGoogle as the native platform
Ensure that you replace the ClientId and ServerClientId with your client IDs from Google Cloud Console. The ClientId should be the Android OAuth Credential that you have linked to your title in Google Play Console. ServerClientId should be the Web Application OAuth Credential that you configured.
=== Getting the Token
==== Getting the Token
Once you have configured the above options, you should be able to obtain a server side token that you can use for auth with mod.io.
Expand Down
951 changes: 475 additions & 476 deletions Doc/documentation.html

Large diffs are not rendered by default.

Binary file modified Doc/img/nd_img_CreateNotificationParams.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_Filesize_ToString.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_GetLogoSize.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_K2_PurchaseModAsync.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_K2_SubmitModChangesFromMemoryAsync.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_MakeEntitlementParams.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_MakeInitializeOptions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_RefreshListByFilter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_RoundNumberString.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_SetPortal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_SetRetryRequestedDelegate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_SetSessionIdentifier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Doc/img/nd_img_ShowSearchResults.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 20 additions & 19 deletions Source/Modio/Private/Internal/Convert/ModInfo.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/*
/*
* Copyright (C) 2021 mod.io Pty Ltd. <https://mod.io>
*
*
* This file is part of the mod.io UE4 Plugin.
*
* Distributed under the MIT License. (See accompanying file LICENSE or
*
* Distributed under the MIT License. (See accompanying file LICENSE or
* view online at <https://github.com/modio/modio-ue4/blob/main/LICENSE>)
*
*
*/

#pragma once
Expand All @@ -18,19 +18,20 @@
#include "Internal/ModioConvert.h"
#include "ModioSDK.h"
#include "Types/ModioModInfo.h"
#include "Types/ModioUnsigned64.h"

template<typename DestValueType, typename SourceValueType, typename... OtherParams>
TArray<DestValueType> ToUnrealD(const std::vector<SourceValueType, OtherParams...>& OriginalArray)
{
TArray<DestValueType> Result;
TArray<DestValueType> Result;

Result.Reserve(OriginalArray.size());
for (const auto& It : OriginalArray)
{
Result.Emplace(ToUnreal(It));
}
Result.Reserve(OriginalArray.size());
for (const auto& It : OriginalArray)
{
Result.Emplace(ToUnreal(It));
}

return Result;
return Result;
}

FORCEINLINE FModioModInfo ToUnreal(const Modio::ModInfo& In)
Expand All @@ -47,23 +48,23 @@ FORCEINLINE FModioModInfo ToUnreal(const Modio::ModInfo& In)
Out.ProfileDateUpdated = ToUnrealDateTime(In.ProfileDateUpdated);
Out.ProfileDateLive = ToUnrealDateTime(In.ProfileDateLive);
Out.ProfileMaturityOption = ToUnreal<EModioMaturityFlags, Modio::MaturityOption>(In.ProfileMaturityOption);
Out.Visibility = (EModioObjectVisibilityFlags)In.Visibility;
Out.Visibility = (EModioObjectVisibilityFlags) In.Visibility;
Out.Dependencies = In.Dependencies;

Out.MetadataBlob = FString(In.MetadataBlob.c_str()); // Converting verbatim rather than via TCHAR as ToUnreal does

if (In.FileInfo.has_value())
{
Out.FileInfo = ToUnreal(In.FileInfo.value());
}
if (In.FileInfo.has_value())
{
Out.FileInfo = ToUnreal(In.FileInfo.value());
}

Out.MetadataKvp = ToUnrealD<FModioMetadata>(In.MetadataKvp);
Out.MetadataKvp = ToUnrealD<FModioMetadata>(In.MetadataKvp);
Out.Tags = ToUnrealD<FModioModTag>(In.Tags);
Out.NumGalleryImages = ToUnreal(In.NumGalleryImages);
Out.YoutubeURLs = ToUnreal(In.YoutubeURLs);
Out.SketchfabURLs = ToUnreal(In.SketchfabURLs);
Out.Stats = ToUnreal(In.Stats);
Out.ModStatus = (EModioModServerSideStatus) In.ModStatus;
Out.Price = In.Price;
Out.Price = FModioUnsigned64(In.Price);
return Out;
}
4 changes: 2 additions & 2 deletions Source/Modio/Private/ModioSubsystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1301,10 +1301,10 @@ void UModioSubsystem::PurchaseModAsync(FModioModID ModID, uint64_t ExpectedPrice
});
}

void UModioSubsystem::K2_PurchaseModAsync(FModioModID ModID, int ExpectedPrice, FOnPurchaseModDelegate Callback)
void UModioSubsystem::K2_PurchaseModAsync(FModioModID ModID, FModioUnsigned64 ExpectedPrice, FOnPurchaseModDelegate Callback)
{
PurchaseModAsync(
ModID, ExpectedPrice,
ModID, ExpectedPrice.Underlying,
FOnPurchaseModDelegateFast::CreateLambda(
[Callback](FModioErrorCode ec, TOptional<FModioTransactionRecord> TransactionRecord) {
Callback.ExecuteIfBound(ec, ToBP<FModioOptionalTransactionRecord>(TransactionRecord));
Expand Down
3 changes: 2 additions & 1 deletion Source/Modio/Public/ModioSubsystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -1657,7 +1657,8 @@ class UModioSubsystem : public UEngineSubsystem
* @requires no-rate-limiting
**/
UFUNCTION(BlueprintCallable, DisplayName = "PurchaseModAsync", Category = "mod.io|Monetization")
MODIO_API void K2_PurchaseModAsync(FModioModID ModID, int ExpectedPrice, FOnPurchaseModDelegate Callback);
MODIO_API void K2_PurchaseModAsync(FModioModID ModID, FModioUnsigned64 ExpectedPrice,
FOnPurchaseModDelegate Callback);

/**
* @docpublic
Expand Down
52 changes: 27 additions & 25 deletions Source/Modio/Public/Types/ModioModInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "Types/ModioModStats.h"
#include "Types/ModioModTag.h"
#include "Types/ModioURLList.h"
#include "Types/ModioUnsigned64.h"
#include "Types/ModioUser.h"

#include "ModioModInfo.generated.h"
Expand All @@ -25,21 +26,21 @@ namespace Modio
}

/**
* Enumeration that represent mature content for the mod to create
**/
* Enumeration that represent mature content for the mod to create
**/
UENUM(BlueprintType, meta = (Bitflags, UseEnumValuesAsMaskValuesInEditor = "true"))
enum class EModioObjectVisibilityFlags : uint8
{
/** Mod is concealed from users **/
Hidden = 0,

/** Mod is openly available **/
Public = 1
};

/**
* Enumeration that represent mature content for the mod to create
**/
* Enumeration that represent mature content for the mod to create
**/
UENUM(BlueprintType, meta = (Bitflags, UseEnumValuesAsMaskValuesInEditor = "true"))
enum class EModioMaturityFlags : uint8
{
Expand All @@ -61,8 +62,8 @@ enum class EModioMaturityFlags : uint8
ENUM_CLASS_FLAGS(EModioMaturityFlags);

/**
* Enumeration that represent mod server side status
**/
* Enumeration that represent mod server side status
**/
UENUM(BlueprintType, meta = (Bitflags, UseEnumValuesAsMaskValuesInEditor = "true"))
enum class EModioModServerSideStatus : uint8
{
Expand All @@ -71,9 +72,9 @@ enum class EModioModServerSideStatus : uint8
Deleted = 3
};

/**
* Full mod profile including current release information, media links, and stats
**/
/**
* Full mod profile including current release information, media links, and stats
**/
USTRUCT(BlueprintType)
struct MODIO_API FModioModInfo
{
Expand Down Expand Up @@ -127,16 +128,17 @@ struct MODIO_API FModioModInfo
UPROPERTY(BlueprintReadOnly, EditInstanceOnly, Category = "Profile")
EModioMaturityFlags ProfileMaturityOption {};

/** @brief Is the mod marked as visible?
* @deprecated Use Visibility property instead
*/
UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "Deprecated as of 2023.6 release. Please use the <<Visibility>> instead."))
/** @brief Is the mod marked as visible?
* @deprecated Use Visibility property instead
*/
UPROPERTY(meta = (DeprecatedProperty,
DeprecationMessage = "Deprecated as of 2023.6 release. Please use the <<Visibility>> instead."))
bool bVisible_DEPRECATED {};

/**
* @brief Enum parameter to signal the backend if the mod to upload would be publicly visible.
* Default value is Public
**/
* @brief Enum parameter to signal the backend if the mod to upload would be publicly visible.
* Default value is Public
**/
UPROPERTY(BlueprintReadOnly, EditInstanceOnly, Category = "Profile")
EModioObjectVisibilityFlags Visibility {};

Expand All @@ -145,8 +147,8 @@ struct MODIO_API FModioModInfo
bool Dependencies;

/**
* Stored property to the metadata string
**/
* Stored property to the metadata string
**/
UPROPERTY(BlueprintReadOnly, EditInstanceOnly, Category = "Metadata")
FString MetadataBlob;

Expand Down Expand Up @@ -184,20 +186,20 @@ struct MODIO_API FModioModInfo

/** @brief Price of this mod */
UPROPERTY(BlueprintReadOnly, EditInstanceOnly, Category = "Monetization")
int32 Price = 0;
FModioUnsigned64 Price = FModioUnsigned64(0);

friend struct FModioModInfo ToUnreal(const struct Modio::ModInfo& In);
};

/**
* Strong type struct to store an optional ModInfo parameter
**/
* Strong type struct to store an optional ModInfo parameter
**/
USTRUCT(BlueprintType)
struct MODIO_API FModioOptionalModInfo
{
GENERATED_BODY()
/**
* Stored property to an optional ModInfo
**/
* Stored property to an optional ModInfo
**/
TOptional<FModioModInfo> Internal;
};
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,16 @@ void UModioCommonActivatableWidget::ListenForInputAction(TObjectPtr<UModioCommon

void UModioCommonActivatableWidget::ClearListeningInputActions()
{
// If we're not on the game thread, we need to defer this to the game thread (since UMG/Slate and the ListeningInputActions array are not thread safe)
if (!IsInGameThread())
{
AsyncTask(ENamedThreads::GameThread, [WeakThis = MakeWeakObjectPtr(this)]()
{
WeakThis->ClearListeningInputActions();
});
return;
}

UnbindInputActions();
ListeningInputActions.Empty();
}
Expand Down
2 changes: 1 addition & 1 deletion Source/ThirdParty/NativeSDK
Submodule NativeSDK updated 73 files
+1 −1 .gitmodules
+1 −1 .modio
+292 −363 doc/getting-started.adoc
+919 −1,041 doc/modio_sdk_documentation.html
+1 −1 ext/fmt
+28 −0 modio/CMakeLists.txt
+0 −3 modio/modio/ModioSDK.h
+2 −1 modio/modio/core/ModioFilterParams.h
+3 −0 modio/modio/core/ModioFilterParams.ipp
+0 −2 modio/modio/core/ModioModDependency.h
+1 −30 modio/modio/core/ModioModDependency.ipp
+0 −6 modio/modio/core/entities/CMakeLists.txt
+2 −2 modio/modio/core/entities/ModioEntitlementConsumptionStatusList.h
+1 −38 modio/modio/core/entities/ModioEntitlementConsumptionStatusList.ipp
+1 −1 modio/modio/core/entities/ModioGameInfoList.h
+1 −25 modio/modio/core/entities/ModioGameInfoList.ipp
+1 −26 modio/modio/core/entities/ModioModDetails.ipp
+1 −1 modio/modio/core/entities/ModioModInfo.h
+1 −2 modio/modio/core/entities/ModioModInfoList.h
+1 −25 modio/modio/core/entities/ModioModInfoList.ipp
+2 −1 modio/modio/core/entities/ModioPagedResult.h
+1 −33 modio/modio/core/entities/ModioPagedResult.ipp
+1 −1 modio/modio/core/entities/ModioUserList.h
+1 −25 modio/modio/core/entities/ModioUserList.ipp
+33 −6 modio/modio/detail/FmtWrapper.h
+0 −8 modio/modio/detail/ModioExtendedInitParamHandler.h
+6 −23 modio/modio/detail/entities/ModioUploadPart.h
+3 −16 modio/modio/detail/entities/ModioUploadSession.h
+10 −7 modio/modio/detail/ops/FetchExternalUpdates.h
+1 −1 modio/modio/detail/ops/GetMutedUsersOp.h
+1 −0 modio/modio/detail/ops/LoadModCollectionFromStorage.h
+5 −2 modio/modio/detail/ops/SaveModCollectionToStorage.h
+2 −0 modio/modio/detail/ops/compression/CompressFolderOp.h
+2 −0 modio/modio/detail/ops/mod/GetModDependenciesOp.h
+1 −1 modio/modio/detail/ops/mod/ListAllModsOp.h
+1 −1 modio/modio/detail/ops/mod/ListUserCreatedModsOp.h
+2 −2 modio/modio/detail/ops/modmanagement/FetchUserSubscriptionsFromServer.h
+12 −9 modio/modio/detail/ops/modmanagement/ProcessNextModInUserCollection.h
+1 −1 modio/modio/detail/ops/monetization/FetchUserPurchasesOp.h
+2 −0 modio/modio/detail/ops/monetization/PurchaseModOp.h
+1 −1 modio/modio/detail/ops/upload/Multipart/MultipartGetUploadedOp.h
+1 −1 modio/modio/detail/ops/upload/UploadFilePartOp.h
+1 −1 modio/modio/detail/ops/upload/UploadMultipartFileOp.h
+1 −1 modio/modio/detail/ops/userdata/ListUserGamesOp.h
+39 −0 modio/modio/detail/serialization/ModioEntitlementConsumptionStatusListSerialization.h
+27 −0 modio/modio/detail/serialization/ModioGameInfoListSerialization.h
+4 −4 modio/modio/detail/serialization/ModioGameInfoSerialization.h
+32 −0 modio/modio/detail/serialization/ModioModDependencySerialization.h
+28 −0 modio/modio/detail/serialization/ModioModDetailsSerialization.h
+26 −0 modio/modio/detail/serialization/ModioModInfoListSerialization.h
+3 −3 modio/modio/detail/serialization/ModioModTagOptionsSerialization.h
+35 −0 modio/modio/detail/serialization/ModioPagedResultSerialization.h
+48 −0 modio/modio/detail/serialization/ModioUploadPartSerialization.h
+41 −0 modio/modio/detail/serialization/ModioUploadSessionSerialization.h
+26 −0 modio/modio/detail/serialization/ModioUserListSerialization.h
+1 −1 modio/modio/impl/SDKPreconditionChecks.h
+1 −0 platform/android/doc/cmake-integration.mdx
+1 −0 platform/android/doc/getting-started.mdx
+2 −0 platform/interface/modio/detail/file/IFileObjectImplementation.h
+1 −0 platform/ios/doc/cmake-integration.mdx
+1 −0 platform/ios/doc/getting-started.mdx
+3 −0 platform/ios/ios/file/FileObjectImplementation.h
+0 −1 platform/ios/ios/file/FileSystemImplementation.h
+1 −0 platform/linux/doc/cmake-integration.mdx
+1 −0 platform/linux/doc/getting-started.mdx
+2 −0 platform/linux/linux/file/FileObjectImplementation.h
+1 −0 platform/macos/doc/cmake-integration.mdx
+1 −0 platform/macos/doc/getting-started.mdx
+3 −1 platform/macos/macos/file/FileSystemImplementation.h
+1 −0 platform/ms-common/include/common/detail/ops/file/DeleteFileOp.h
+0 −1 platform/ms-common/include/common/file/FileSystemImplementation.h
+1 −0 platform/win32/doc/cmake-integration.mdx
+1 −0 platform/win32/doc/getting-started.mdx

0 comments on commit 74b8977

Please sign in to comment.