From 378ef0a052840ad796b252cea1e44638009ec078 Mon Sep 17 00:00:00 2001 From: Haselnussbomber Date: Tue, 16 Jul 2024 20:41:41 +0200 Subject: [PATCH] Add SeString.Parse(byte*) (#1937) --- Dalamud/Game/Text/SeStringHandling/SeString.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Dalamud/Game/Text/SeStringHandling/SeString.cs b/Dalamud/Game/Text/SeStringHandling/SeString.cs index 54c5e4a7b..3b83aed0c 100644 --- a/Dalamud/Game/Text/SeStringHandling/SeString.cs +++ b/Dalamud/Game/Text/SeStringHandling/SeString.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using System.Text; using Dalamud.Data; @@ -162,6 +163,13 @@ public class SeString /// An SeString containing parsed Payload objects for each payload in the data. public static SeString Parse(byte[] bytes) => Parse(new ReadOnlySpan(bytes)); + /// + /// Parse a binary game message into an SeString. + /// + /// Pointer to the string's data in memory. Needs to be null-terminated. + /// An SeString containing parsed Payload objects for each payload in the data. + public static unsafe SeString Parse(byte* ptr) => Parse(MemoryMarshal.CreateReadOnlySpanFromNullTerminated(ptr)); + /// /// Creates an SeString representing an entire Payload chain that can be used to link an item in the chat log. ///