diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs index e7568a4a..058c5646 100644 --- a/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs +++ b/Ryujinx.HLE/HOS/Services/Friend/ServiceCreator/FriendService/Types/UserPresence.cs @@ -1,9 +1,12 @@ -using Ryujinx.HLE.HOS.Services.Account.Acc; +using Ryujinx.Common.Memory; +using Ryujinx.HLE.HOS.Services.Account.Acc; +using System; using System.Runtime.InteropServices; +using System.Text; namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService { - [StructLayout(LayoutKind.Sequential, Pack = 0x8, CharSet = CharSet.Ansi)] + [StructLayout(LayoutKind.Sequential, Pack = 0x8)] struct UserPresence { public UserId UserId; @@ -13,15 +16,20 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService [MarshalAs(UnmanagedType.I1)] public bool SamePresenceGroupApplication; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x3)] - public char[] Unknown; + public Array3<byte> Unknown; + private AppKeyValueStorageHolder _appKeyValueStorage; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0xC0)] - public char[] AppKeyValueStorage; + public Span<byte> AppKeyValueStorage => MemoryMarshal.Cast<AppKeyValueStorageHolder, byte>(MemoryMarshal.CreateSpan(ref _appKeyValueStorage, AppKeyValueStorageHolder.Size)); + + [StructLayout(LayoutKind.Sequential, Pack = 0x1, Size = Size)] + private struct AppKeyValueStorageHolder + { + public const int Size = 0xC0; + } public override string ToString() { - return $"UserPresence {{ UserId: {UserId}, LastTimeOnlineTimestamp: {LastTimeOnlineTimestamp}, Status: {Status}, AppKeyValueStorage: {AppKeyValueStorage} }}"; + return $"UserPresence {{ UserId: {UserId}, LastTimeOnlineTimestamp: {LastTimeOnlineTimestamp}, Status: {Status}, AppKeyValueStorage: {Encoding.ASCII.GetString(AppKeyValueStorage)} }}"; } } }
\ No newline at end of file |
