diff --git a/Pilz.Dalamud/Nameplates/Tools/NameplateUpdateFactory.cs b/Pilz.Dalamud/Nameplates/Tools/NameplateUpdateFactory.cs
index b9133e3..1aa26d4 100644
--- a/Pilz.Dalamud/Nameplates/Tools/NameplateUpdateFactory.cs
+++ b/Pilz.Dalamud/Nameplates/Tools/NameplateUpdateFactory.cs
@@ -1,4 +1,8 @@
using Dalamud.Game.Text.SeStringHandling;
+using Dalamud.Game.Text.SeStringHandling.Payloads;
+using Pilz.Dalamud.ActivityContexts;
+using Pilz.Dalamud.Nameplates.Model;
+using Pilz.Dalamud.Tools;
using Pilz.Dalamud.Tools.Strings;
using System;
using System.Collections.Generic;
@@ -18,5 +22,23 @@ namespace Pilz.Dalamud.Nameplates.Tools
StringUpdateFactory.ApplyStringChanges(change);
}
}
+
+ public static bool ApplyStatusIconWithPrio(ref int statusIcon, int newStatusIcon, StringChange stringChange, ActivityContext activityContext, StatusIconPriorizer priorizer)
+ {
+ var isPrio = priorizer.IsPriorityIcon(statusIcon, activityContext);
+
+ if (!isPrio)
+ {
+ var fontIcon = StatusIconFontConverter.GetBitmapFontIconFromStatusIcon((StatusIcons)statusIcon);
+
+ if (fontIcon != null)
+ {
+ var iconPayload = new IconPayload(fontIcon.Value);
+ stringChange.Payloads.Insert(0, iconPayload);
+ }
+ }
+
+ return isPrio;
+ }
}
}
diff --git a/Pilz.Dalamud/Nameplates/Tools/StatusIconPriorizer.cs b/Pilz.Dalamud/Nameplates/Tools/StatusIconPriorizer.cs
index 61e2166..6d0c6fa 100644
--- a/Pilz.Dalamud/Nameplates/Tools/StatusIconPriorizer.cs
+++ b/Pilz.Dalamud/Nameplates/Tools/StatusIconPriorizer.cs
@@ -30,10 +30,9 @@ namespace Pilz.Dalamud.Nameplates.Tools
/// The incoming icon id that is being overwritten by the plugin.
/// The icon id that should be used.
/// Whether a priority icon was found.
- private bool IsPriorityIcon(int iconId, out int priorityIconId, ActivityContext activityContext)
+ public bool IsPriorityIcon(int iconId, ActivityContext activityContext)
{
bool isPrioIcon;
- priorityIconId = iconId;
if (!Settings.UsePriorizedIcons && iconId != (int)StatusIcons.Disconnecting && iconId != (int)StatusIcons.Disconnecting + 50)
isPrioIcon = false;
@@ -46,9 +45,6 @@ namespace Pilz.Dalamud.Nameplates.Tools
// Determine whether the incoming icon should take priority over the job icon
// Check the id plus 50 as that's an alternately sized version
isPrioIcon = priorityIcons.Contains(iconId) || priorityIcons.Contains(iconId + 50);
-
- // Save the id of the icon
- priorityIconId = iconId;
}
return isPrioIcon;