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}";
}
}