// Copyright Epic Games, Inc. All Rights Reserved. // This file is automatically generated. Changes to this file may be overwritten. namespace Epic.OnlineServices.Lobby { /// /// Input parameters for the function. /// public class CreateLobbyOptions { /// /// The Product User ID of the local user creating the lobby; this user will automatically join the lobby as its owner /// public ProductUserId LocalUserId { get; set; } /// /// The maximum number of users who can be in the lobby at a time /// public uint MaxLobbyMembers { get; set; } /// /// The initial permission level of the lobby /// public LobbyPermissionLevel PermissionLevel { get; set; } /// /// If true, this lobby will be associated with presence information. A user's presence can only be associated with one lobby at a time. /// This affects the ability of the Social Overlay to show game related actions to take in the user's social graph. /// /// @note 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 /// /// /// /// /// public bool PresenceEnabled { get; set; } /// /// Are members of the lobby allowed to invite others /// public bool AllowInvites { get; set; } /// /// Bucket ID associated with the lobby /// public string BucketId { get; set; } /// /// Is host migration allowed (will the lobby stay open if the original host leaves?) /// NOTE: is still allowed regardless of this setting /// public bool DisableHostMigration { get; set; } /// /// Creates a real-time communication (RTC) room for all members of this lobby. All members of the lobby will automatically join the RTC /// room when they connect to the lobby and they will automatically leave the RTC room when they leave or are removed from the lobby. /// While the joining and leaving of the RTC room is automatic, applications will still need to use the EOS RTC interfaces to handle all /// other functionality for the room. /// /// /// public bool EnableRTCRoom { get; set; } /// /// (Optional) Allows the local application to set local audio options for the RTC Room if it is enabled. Set this to NULL if the RTC /// RTC room is disabled or you would like to use the defaults. /// public LocalRTCOptions LocalRTCOptions { get; set; } /// /// (Optional) Set to a globally unique value to override the backend assignment /// If not specified the backend service will assign one to the lobby. Do not mix and match override and non override settings. /// This value can be of size [, ] /// public string LobbyId { get; set; } } [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 8)] internal struct CreateLobbyOptionsInternal : ISettable, System.IDisposable { private int m_ApiVersion; private System.IntPtr m_LocalUserId; private uint m_MaxLobbyMembers; private LobbyPermissionLevel m_PermissionLevel; private int m_PresenceEnabled; private int m_AllowInvites; private System.IntPtr m_BucketId; private int m_DisableHostMigration; private int m_EnableRTCRoom; private System.IntPtr m_LocalRTCOptions; private System.IntPtr m_LobbyId; public ProductUserId LocalUserId { set { Helper.TryMarshalSet(ref m_LocalUserId, value); } } public uint MaxLobbyMembers { set { m_MaxLobbyMembers = value; } } public LobbyPermissionLevel PermissionLevel { set { m_PermissionLevel = value; } } public bool PresenceEnabled { set { Helper.TryMarshalSet(ref m_PresenceEnabled, value); } } public bool AllowInvites { set { Helper.TryMarshalSet(ref m_AllowInvites, value); } } public string BucketId { set { Helper.TryMarshalSet(ref m_BucketId, value); } } public bool DisableHostMigration { set { Helper.TryMarshalSet(ref m_DisableHostMigration, value); } } public bool EnableRTCRoom { set { Helper.TryMarshalSet(ref m_EnableRTCRoom, value); } } public LocalRTCOptions LocalRTCOptions { set { Helper.TryMarshalSet(ref m_LocalRTCOptions, value); } } public string LobbyId { set { Helper.TryMarshalSet(ref m_LobbyId, value); } } public void Set(CreateLobbyOptions other) { if (other != null) { m_ApiVersion = LobbyInterface.CreatelobbyApiLatest; LocalUserId = other.LocalUserId; MaxLobbyMembers = other.MaxLobbyMembers; PermissionLevel = other.PermissionLevel; PresenceEnabled = other.PresenceEnabled; AllowInvites = other.AllowInvites; BucketId = other.BucketId; DisableHostMigration = other.DisableHostMigration; EnableRTCRoom = other.EnableRTCRoom; LocalRTCOptions = other.LocalRTCOptions; LobbyId = other.LobbyId; } } public void Set(object other) { Set(other as CreateLobbyOptions); } public void Dispose() { Helper.TryMarshalDispose(ref m_LocalUserId); Helper.TryMarshalDispose(ref m_BucketId); Helper.TryMarshalDispose(ref m_LocalRTCOptions); Helper.TryMarshalDispose(ref m_LobbyId); } } }