Try to resolve RSV content

This commit is contained in:
Infi
2024-08-02 02:54:07 +02:00
parent f22b917164
commit 4d341679ab
2 changed files with 16 additions and 3 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<Version>1.27.10</Version> <Version>1.28.0</Version>
<TargetFramework>net8.0-windows</TargetFramework> <TargetFramework>net8.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
+15 -2
View File
@@ -14,7 +14,9 @@ using Dalamud.Interface.Textures;
using Dalamud.Interface.Textures.TextureWraps; using Dalamud.Interface.Textures.TextureWraps;
using Dalamud.Interface.Utility; using Dalamud.Interface.Utility;
using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Utility.Raii;
using Dalamud.Memory;
using Dalamud.Utility; using Dalamud.Utility;
using FFXIVClientStructs.FFXIV.Client.LayoutEngine;
using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI;
using FFXIVClientStructs.FFXIV.Component.GUI; using FFXIVClientStructs.FFXIV.Component.GUI;
using ImGuiNET; using ImGuiNET;
@@ -310,16 +312,27 @@ public sealed class PayloadHandler {
ImGui.SetCursorPos(cursor + new Vector2(size.X + 4, size.Y / 2 - lineHeight / 2)); ImGui.SetCursorPos(cursor + new Vector2(size.X + 4, size.Y / 2 - lineHeight / 2));
} }
private static unsafe SeString ResolveRsv(SeString input)
{
var txt = input.TextValue;
if (txt.StartsWith("_rsv_"))
input = SeString.Parse(LayoutWorld.Instance()->ResolveRsvString(txt));
return input;
}
private void HoverStatus(StatusPayload status) private void HoverStatus(StatusPayload status)
{ {
if (Plugin.TextureProvider.GetFromGameIcon(status.Status.Icon).GetWrapOrDefault() is { } icon) if (Plugin.TextureProvider.GetFromGameIcon(status.Status.Icon).GetWrapOrDefault() is { } icon)
InlineIcon(icon); InlineIcon(icon);
var name = ChunkUtil.ToChunks(status.Status.Name.ToDalamudString(), ChunkSource.None, null); var nameString = ResolveRsv(status.Status.Name.ToDalamudString());
var name = ChunkUtil.ToChunks(nameString, ChunkSource.None, null);
LogWindow.DrawChunks(name.ToList()); LogWindow.DrawChunks(name.ToList());
ImGui.Separator(); ImGui.Separator();
var desc = ChunkUtil.ToChunks(status.Status.Description.ToDalamudString(), ChunkSource.None, null); var descString = ResolveRsv(status.Status.Description.ToDalamudString());
var desc = ChunkUtil.ToChunks(descString, ChunkSource.None, null);
LogWindow.DrawChunks(desc.ToList()); LogWindow.DrawChunks(desc.ToList());
} }