From e78dc692be596c4833bf5fd903af7de40f2930fe Mon Sep 17 00:00:00 2001 From: Cara Date: Thu, 14 Jan 2021 08:33:36 +1030 Subject: [PATCH] Add SeHyphenPayload --- Dalamud/Game/Chat/SeStringHandling/Payload.cs | 5 ++++ .../Game/Chat/SeStringHandling/PayloadType.cs | 3 +- .../Payloads/SeHyphenPayload.cs | 30 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 Dalamud/Game/Chat/SeStringHandling/Payloads/SeHyphenPayload.cs diff --git a/Dalamud/Game/Chat/SeStringHandling/Payload.cs b/Dalamud/Game/Chat/SeStringHandling/Payload.cs index 9d3d441f3..9d35f4c8c 100644 --- a/Dalamud/Game/Chat/SeStringHandling/Payload.cs +++ b/Dalamud/Game/Chat/SeStringHandling/Payload.cs @@ -130,6 +130,10 @@ namespace Dalamud.Game.Chat.SeStringHandling payload = new EmphasisItalicPayload(); break; + case SeStringChunkType.SeHyphen: + payload = SeHyphenPayload.Payload; + break; + case SeStringChunkType.Interactable: { var subType = (EmbeddedInfoType)reader.ReadByte(); @@ -222,6 +226,7 @@ namespace Dalamud.Game.Chat.SeStringHandling { Icon = 0x12, EmphasisItalic = 0x1A, + SeHyphen = 0x1F, Interactable = 0x27, AutoTranslateKey = 0x2E, UIForeground = 0x48, diff --git a/Dalamud/Game/Chat/SeStringHandling/PayloadType.cs b/Dalamud/Game/Chat/SeStringHandling/PayloadType.cs index 6d8a3de1b..b18bd870a 100644 --- a/Dalamud/Game/Chat/SeStringHandling/PayloadType.cs +++ b/Dalamud/Game/Chat/SeStringHandling/PayloadType.cs @@ -57,6 +57,7 @@ namespace Dalamud.Game.Chat.SeStringHandling /// /// An SeString payload representing any data we don't handle. /// - Unknown + Unknown, + SeHyphen, } } diff --git a/Dalamud/Game/Chat/SeStringHandling/Payloads/SeHyphenPayload.cs b/Dalamud/Game/Chat/SeStringHandling/Payloads/SeHyphenPayload.cs new file mode 100644 index 000000000..7b2fcbf26 --- /dev/null +++ b/Dalamud/Game/Chat/SeStringHandling/Payloads/SeHyphenPayload.cs @@ -0,0 +1,30 @@ +using System.IO; + +namespace Dalamud.Game.Chat.SeStringHandling.Payloads { + /// + /// A wrapped '–' + /// + public class SeHyphenPayload : Payload, ITextProvider { + + /// + /// Instance of SeHyphenPayload + /// + public static SeHyphenPayload Payload => new SeHyphenPayload(); + + /// + public override PayloadType Type => PayloadType.SeHyphen; + + private readonly byte[] bytes = {START_BYTE, (byte) SeStringChunkType.SeHyphen, 0x01, END_BYTE}; + + /// + protected override byte[] EncodeImpl() => this.bytes; + + /// + protected override void DecodeImpl(BinaryReader reader, long endOfStream) { } + + /// + /// Just a '–' + /// + public string Text => "–"; + } +}