diff --git a/Dalamud/Game/Chat/SeStringHandling/BitmapFontIcon.cs b/Dalamud/Game/Chat/SeStringHandling/BitmapFontIcon.cs new file mode 100644 index 000000000..3dbf19571 --- /dev/null +++ b/Dalamud/Game/Chat/SeStringHandling/BitmapFontIcon.cs @@ -0,0 +1,120 @@ +#pragma warning disable 1591 + +namespace Dalamud.Game.Chat.SeStringHandling { + public enum BitmapFontIcon : uint { + None, + ControllerDPadUp, + ControllerDPadDown, + ControllerDPadLeft, + ControllerDPadRight, + ControllerDPadUpDown, + ControllerDPadLeftRight, + ControllerDPadAll, + + ControllerButton0, // Xbox B / PS Circle + ControllerButton1, // Xbox A / PS Cross + ControllerButton2, // Xbox X / PS Square + ControllerButton3, // Xbox Y / PS Triangle + + ControllerShoulderLeft, + ControllerShoulderRight, + + ControllerTriggerLeft, + ControllerTriggerRight, + + ControllerAnalogLeftStickIn, + ControllerAnalogRightStickIn, + + ControllerStart, + ControllerBack, + + ControllerAnalogLeftStick, + ControllerAnalogLeftStickUpDown, + ControllerAnalogLeftStickLeftRight, + + ControllerAnalogRightStick, + ControllerAnalogRightStickUpDown, + ControllerAnalogRightStickLeftRight, + + LaNoscea = 51, + BlackShroud, + Thanalan, + AutoTranslateBegin, + AutoTranslateEnd, + ElementFire, + ElementIce, + ElementWind, + ElementEarth, + ElementLightning, + ElementWater, + LevelSync, + Warning, + Ishgard, + Aetheryte, + Aethernet, + + GoldStar, + SilverStar, + + GreenDot = 70, + SwordUnsheathed, + SwordSheathed, + + Dice, + + FlyZone, + FlyZoneLocked, + + NoCircle, + + NewAdventurer, + Mentor, + MentorPvE, + MentorCrafting, + MentorPvP, + + Tank, + Healer, + DPS, + Crafter, + Gatherer, + AnyClass, + + CrossWorld, + + FateSlay, + FateBoss, + FateGather, + FateDefend, + FateEscort, + FateSpecial1, + + Returner, + + FarEast, + GyrAbania, + + FateSpecial2, + + PriorityWorld, + + ElementalLevel, + ExclamationRectangle, + + NotoriousMonster, + + Recording, + Alarm, + + ArrowUp, + ArrowDown, + Crystarium, + + MentorProblem, + + FateUnknownGold, + + OrangeDiamond, + FateCrafting + } +} diff --git a/Dalamud/Game/Chat/SeStringHandling/Payloads/IconPayload.cs b/Dalamud/Game/Chat/SeStringHandling/Payloads/IconPayload.cs index 3b720262b..b7fffde8b 100644 --- a/Dalamud/Game/Chat/SeStringHandling/Payloads/IconPayload.cs +++ b/Dalamud/Game/Chat/SeStringHandling/Payloads/IconPayload.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using System.IO; -using Serilog; +using System; namespace Dalamud.Game.Chat.SeStringHandling.Payloads { @@ -12,7 +12,13 @@ namespace Dalamud.Game.Chat.SeStringHandling.Payloads { /// /// Index of the icon /// - public uint IconIndex { get; private set; } + [Obsolete("Use IconPayload.Icon")] + public uint IconIndex => (uint) Icon; + + /// + /// Icon the payload represents. + /// + public BitmapFontIcon Icon { get; set; } = BitmapFontIcon.None; internal IconPayload() { } @@ -20,14 +26,23 @@ namespace Dalamud.Game.Chat.SeStringHandling.Payloads { /// Create a Icon payload for the specified icon. /// /// Index of the icon - public IconPayload(uint iconIndex) { - this.IconIndex = iconIndex; + [Obsolete("IconPayload(uint) is deprecated, please use IconPayload(BitmapFontIcon).")] + public IconPayload(uint iconIndex) : this((BitmapFontIcon) iconIndex) { } + + /// + /// Create a Icon payload for the specified icon. + /// + /// The Icon + public IconPayload(BitmapFontIcon icon) { + Icon = icon; } + /// public override PayloadType Type => PayloadType.Icon; + /// protected override byte[] EncodeImpl() { - var indexBytes = MakeInteger(this.IconIndex); + var indexBytes = MakeInteger((uint) this.Icon); var chunkLen = indexBytes.Length + 1; var bytes = new List(new byte[] { START_BYTE, (byte)SeStringChunkType.Icon, (byte)chunkLen @@ -37,12 +52,14 @@ namespace Dalamud.Game.Chat.SeStringHandling.Payloads { return bytes.ToArray(); } + /// protected override void DecodeImpl(BinaryReader reader, long endOfStream) { - this.IconIndex = GetInteger(reader); + Icon = (BitmapFontIcon) GetInteger(reader); } + /// public override string ToString() { - return $"{Type} - IconIndex: {this.IconIndex}"; + return $"{Type} - {Icon}"; } }