You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

162 lines
4.6 KiB

// Copyright Epic Games, Inc. All Rights Reserved.
// This file is automatically generated. Changes to this file may be overwritten.
namespace Epic.OnlineServices.Sessions
{
/// <summary>
/// Input parameters for the <see cref="SessionsInterface.CreateSessionModification" /> function.
/// </summary>
public struct CreateSessionModificationOptions
{
/// <summary>
/// Name of the session to create
/// </summary>
public Utf8String SessionName { get; set; }
/// <summary>
/// Bucket ID associated with the session
/// </summary>
public Utf8String BucketId { get; set; }
/// <summary>
/// Maximum number of players allowed in the session
/// </summary>
public uint MaxPlayers { get; set; }
/// <summary>
/// The Product User ID of the local user associated with the session
/// </summary>
public ProductUserId LocalUserId { get; set; }
/// <summary>
/// If true, this session will be associated with presence. Only one session at a time can have this flag true.
/// This affects the ability of the Social Overlay to show game related actions to take in the user's social graph.
/// The Social Overlay can handle only one of the following three options at a time:
/// using the bPresenceEnabled flags within the Sessions interface
/// using the bPresenceEnabled flags within the Lobby interface
/// using EOS_PresenceModification_SetJoinInfo
/// <seealso cref="Presence.PresenceModificationSetJoinInfoOptions" />
/// <seealso cref="Lobby.CreateLobbyOptions" />
/// <seealso cref="Lobby.JoinLobbyOptions" />
/// <seealso cref="JoinSessionOptions" />
/// </summary>
public bool PresenceEnabled { get; set; }
/// <summary>
/// Optional session id - set to a globally unique value to override the backend assignment
/// If not specified the backend service will assign one to the session. Do not mix and match.
/// This value can be of size [<see cref="SessionModification.SessionmodificationMinSessionidoverrideLength" />, <see cref="SessionModification.SessionmodificationMaxSessionidoverrideLength" />]
/// </summary>
public Utf8String SessionId { get; set; }
/// <summary>
/// If true, sanctioned players can neither join nor register with this session and, in the case of join,
/// will return <see cref="Result" /> code <see cref="Result.SessionsPlayerSanctioned" />
/// </summary>
public bool SanctionsEnabled { get; set; }
}
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 8)]
internal struct CreateSessionModificationOptionsInternal : ISettable<CreateSessionModificationOptions>, System.IDisposable
{
private int m_ApiVersion;
private System.IntPtr m_SessionName;
private System.IntPtr m_BucketId;
private uint m_MaxPlayers;
private System.IntPtr m_LocalUserId;
private int m_PresenceEnabled;
private System.IntPtr m_SessionId;
private int m_SanctionsEnabled;
public Utf8String SessionName
{
set
{
Helper.Set(value, ref m_SessionName);
}
}
public Utf8String BucketId
{
set
{
Helper.Set(value, ref m_BucketId);
}
}
public uint MaxPlayers
{
set
{
m_MaxPlayers = value;
}
}
public ProductUserId LocalUserId
{
set
{
Helper.Set(value, ref m_LocalUserId);
}
}
public bool PresenceEnabled
{
set
{
Helper.Set(value, ref m_PresenceEnabled);
}
}
public Utf8String SessionId
{
set
{
Helper.Set(value, ref m_SessionId);
}
}
public bool SanctionsEnabled
{
set
{
Helper.Set(value, ref m_SanctionsEnabled);
}
}
public void Set(ref CreateSessionModificationOptions other)
{
m_ApiVersion = SessionsInterface.CreatesessionmodificationApiLatest;
SessionName = other.SessionName;
BucketId = other.BucketId;
MaxPlayers = other.MaxPlayers;
LocalUserId = other.LocalUserId;
PresenceEnabled = other.PresenceEnabled;
SessionId = other.SessionId;
SanctionsEnabled = other.SanctionsEnabled;
}
public void Set(ref CreateSessionModificationOptions? other)
{
if (other.HasValue)
{
m_ApiVersion = SessionsInterface.CreatesessionmodificationApiLatest;
SessionName = other.Value.SessionName;
BucketId = other.Value.BucketId;
MaxPlayers = other.Value.MaxPlayers;
LocalUserId = other.Value.LocalUserId;
PresenceEnabled = other.Value.PresenceEnabled;
SessionId = other.Value.SessionId;
SanctionsEnabled = other.Value.SanctionsEnabled;
}
}
public void Dispose()
{
Helper.Dispose(ref m_SessionName);
Helper.Dispose(ref m_BucketId);
Helper.Dispose(ref m_LocalUserId);
Helper.Dispose(ref m_SessionId);
}
}
}