- API 13
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="JetBrains.Annotations" Version="2024.3.0" />
|
||||
<PackageReference Include="JetBrains.Annotations" Version="2025.2.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.6.3" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.6.3" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Dalamud.NET.Sdk/12.0.2">
|
||||
<Project Sdk="Dalamud.NET.Sdk/13.0.0">
|
||||
<PropertyGroup>
|
||||
<Version>1.30.7</Version>
|
||||
<Version>1.31.0</Version>
|
||||
<TargetFramework>net9.0-windows</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
@@ -14,10 +14,10 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MessagePack" Version="3.1.3" />
|
||||
<PackageReference Include="MessagePack" Version="3.1.4" />
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
|
||||
<PackageReference Include="Pidgin" Version="3.3.0" />
|
||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.7" />
|
||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.11" />
|
||||
<PackageReference Include="Watson.Lite" Version="6.2.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ using Dalamud;
|
||||
using Dalamud.Configuration;
|
||||
using Dalamud.Game.ClientState.Keys;
|
||||
using Dalamud.Interface.FontIdentifier;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo;
|
||||
|
||||
@@ -633,15 +633,15 @@ internal static class ExtraGlyphRangesExt
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(ranges), ranges, null),
|
||||
};
|
||||
|
||||
internal static nint Range(this ExtraGlyphRanges ranges) => ranges switch
|
||||
internal static unsafe nint Range(this ExtraGlyphRanges ranges) => ranges switch
|
||||
{
|
||||
ExtraGlyphRanges.ChineseFull => ImGui.GetIO().Fonts.GetGlyphRangesChineseFull(),
|
||||
ExtraGlyphRanges.ChineseSimplifiedCommon => ImGui.GetIO().Fonts.GetGlyphRangesChineseSimplifiedCommon(),
|
||||
ExtraGlyphRanges.Cyrillic => ImGui.GetIO().Fonts.GetGlyphRangesCyrillic(),
|
||||
ExtraGlyphRanges.Japanese => ImGui.GetIO().Fonts.GetGlyphRangesJapanese(),
|
||||
ExtraGlyphRanges.Korean => ImGui.GetIO().Fonts.GetGlyphRangesKorean(),
|
||||
ExtraGlyphRanges.Thai => ImGui.GetIO().Fonts.GetGlyphRangesThai(),
|
||||
ExtraGlyphRanges.Vietnamese => ImGui.GetIO().Fonts.GetGlyphRangesVietnamese(),
|
||||
ExtraGlyphRanges.ChineseFull => (nint)ImGui.GetIO().Fonts.GetGlyphRangesChineseFull(),
|
||||
ExtraGlyphRanges.ChineseSimplifiedCommon => (nint)ImGui.GetIO().Fonts.GetGlyphRangesChineseSimplifiedCommon(),
|
||||
ExtraGlyphRanges.Cyrillic => (nint)ImGui.GetIO().Fonts.GetGlyphRangesCyrillic(),
|
||||
ExtraGlyphRanges.Japanese => (nint)ImGui.GetIO().Fonts.GetGlyphRangesJapanese(),
|
||||
ExtraGlyphRanges.Korean => (nint)ImGui.GetIO().Fonts.GetGlyphRangesKorean(),
|
||||
ExtraGlyphRanges.Thai => (nint)ImGui.GetIO().Fonts.GetGlyphRangesThai(),
|
||||
ExtraGlyphRanges.Vietnamese => (nint)ImGui.GetIO().Fonts.GetGlyphRangesVietnamese(),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(ranges), ranges, null),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
|
||||
using Dalamud.Interface.Textures;
|
||||
using Dalamud.Interface.Textures.TextureWraps;
|
||||
using Dalamud.Utility;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using SixLabors.ImageSharp;
|
||||
using SixLabors.ImageSharp.PixelFormats;
|
||||
|
||||
@@ -154,7 +154,7 @@ public static class EmoteCache
|
||||
|
||||
public virtual void Draw(Vector2 size)
|
||||
{
|
||||
ImGui.Image(Texture!.ImGuiHandle, size);
|
||||
ImGui.Image(Texture!.Handle, size);
|
||||
}
|
||||
|
||||
internal async Task<byte[]> LoadAsync(Emote emote)
|
||||
@@ -236,7 +236,7 @@ public static class EmoteCache
|
||||
if (FrameTimer <= 0.0f)
|
||||
FrameTimer = frame.Delay;
|
||||
|
||||
ImGui.Image(frame.Texture.ImGuiHandle, size);
|
||||
ImGui.Image(frame.Texture.Handle, size);
|
||||
|
||||
if (GlobalFrameCount == Plugin.Interface.UiBuilder.FrameCount)
|
||||
return;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using Dalamud.Interface.GameFonts;
|
||||
using Dalamud.Interface.ManagedFontAtlas;
|
||||
using Dalamud.Interface.Utility;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo;
|
||||
|
||||
@@ -44,7 +44,7 @@ public class FontManager
|
||||
.ReadAsByteArrayAsync()
|
||||
.Result;
|
||||
|
||||
Dalamud.Utility.Util.WriteAllBytesSafe(filePath, GameSymFont);
|
||||
Dalamud.Utility.FilesystemUtil.WriteAllBytesSafe(filePath, GameSymFont);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,10 +52,10 @@ public class FontManager
|
||||
{
|
||||
ushort[] BuildRange(IReadOnlyList<ushort>? chars, params nint[] ranges)
|
||||
{
|
||||
var builder = new ImFontGlyphRangesBuilderPtr(ImGuiNative.ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder());
|
||||
var builder = new ImFontGlyphRangesBuilderPtr(ImGuiNative.ImFontGlyphRangesBuilder());
|
||||
// text
|
||||
foreach (var range in ranges)
|
||||
builder.AddRanges(range);
|
||||
builder.AddRanges((ushort*)range);
|
||||
|
||||
// chars
|
||||
if (chars != null)
|
||||
@@ -85,7 +85,7 @@ public class FontManager
|
||||
return builder.BuildRangesToArray();
|
||||
}
|
||||
|
||||
var ranges = new List<nint> { ImGui.GetIO().Fonts.GetGlyphRangesDefault() };
|
||||
var ranges = new List<nint> { (nint)ImGui.GetIO().Fonts.GetGlyphRangesDefault() };
|
||||
foreach (var extraRange in Enum.GetValues<ExtraGlyphRanges>())
|
||||
if (Plugin.Config.ExtraGlyphRanges.HasFlag(extraRange))
|
||||
ranges.Add(extraRange.Range());
|
||||
|
||||
@@ -34,7 +34,7 @@ internal sealed unsafe class Chat : IDisposable
|
||||
private readonly delegate* unmanaged<NetworkModule*, ulong, ushort, Utf8String*, Utf8String*, ushort, ushort, byte> SendTellNative = null!;
|
||||
|
||||
// Client::UI::AddonChatLog.OnRefresh
|
||||
[Signature("40 53 56 57 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 84 24 ?? ?? ?? ?? 49 8B F0 8B FA", DetourName = nameof(ChatLogRefreshDetour))]
|
||||
[Signature("40 53 57 41 57 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 84 24 ?? ?? ?? ?? 4D 8B F8", DetourName = nameof(ChatLogRefreshDetour))]
|
||||
private Hook<ChatLogRefreshDelegate>? ChatLogRefreshHook { get; init; }
|
||||
private delegate byte ChatLogRefreshDelegate(nint log, ushort eventId, AtkValue* value);
|
||||
|
||||
|
||||
@@ -5,7 +5,9 @@ using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Game.Text.SeStringHandling.Payloads;
|
||||
using Dalamud.Hooking;
|
||||
using Dalamud.Memory;
|
||||
using Dalamud.Utility;
|
||||
using Dalamud.Utility.Signatures;
|
||||
using FFXIVClientStructs.FFXIV.Client.Enums;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.UI;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||
@@ -21,10 +23,9 @@ namespace ChatTwo.GameFunctions;
|
||||
internal unsafe class GameFunctions : IDisposable
|
||||
{
|
||||
#region Hooks
|
||||
private delegate nint ResolveTextCommandPlaceholderDelegate(nint a1, byte* placeholderText, byte a3, byte a4);
|
||||
|
||||
[Signature("E8 ?? ?? ?? ?? 49 8D 4F 18 4C 8B E0", DetourName = nameof(ResolveTextCommandPlaceholderDetour))]
|
||||
[Signature("E8 ?? ?? ?? ?? 48 85 C0 0F 84 ?? ?? ?? ?? 48 8B D0 49 8D 4F", DetourName = nameof(ResolveTextCommandPlaceholderDetour))]
|
||||
private Hook<ResolveTextCommandPlaceholderDelegate>? ResolveTextCommandPlaceholderHook { get; init; }
|
||||
private delegate nint ResolveTextCommandPlaceholderDelegate(nint a1, byte* placeholderText, byte a3, byte a4);
|
||||
#endregion
|
||||
|
||||
private Plugin Plugin { get; }
|
||||
@@ -109,7 +110,7 @@ internal unsafe class GameFunctions : IDisposable
|
||||
return addon != null && addon->IsVisible;
|
||||
}
|
||||
|
||||
internal static void OpenItemTooltip(uint id, ItemPayload.ItemKind itemKind)
|
||||
internal static void OpenItemTooltip(uint id, ItemKind itemKind)
|
||||
{
|
||||
var atkStage = AtkStage.Instance();
|
||||
var agent = AgentItemDetail.Instance();
|
||||
@@ -119,7 +120,7 @@ internal unsafe class GameFunctions : IDisposable
|
||||
if (agent == null || addon == null)
|
||||
return;
|
||||
|
||||
agent->ItemKind = itemKind == ItemPayload.ItemKind.EventItem ? ItemDetailKind.ChatEventItem : ItemDetailKind.ChatItem;
|
||||
agent->DetailKind = itemKind == ItemKind.EventItem ? DetailKind.KeyItem : DetailKind.Item;
|
||||
agent->TypeOrId = id;
|
||||
agent->Index = 0;
|
||||
agent->Flag1 &= 0xEF;
|
||||
|
||||
@@ -7,7 +7,7 @@ using Dalamud.Game.Config;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.String;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using ModifierFlag = ChatTwo.GameFunctions.Types.ModifierFlag;
|
||||
|
||||
namespace ChatTwo.GameFunctions;
|
||||
|
||||
+7
-7
@@ -310,13 +310,13 @@ internal partial class Message
|
||||
|
||||
var kind = item.ItemId switch
|
||||
{
|
||||
< 500_000 => ItemPayload.ItemKind.Normal,
|
||||
< 1_000_000 => ItemPayload.ItemKind.Collectible,
|
||||
< 2_000_000 => ItemPayload.ItemKind.Hq,
|
||||
_ => ItemPayload.ItemKind.EventItem
|
||||
< 500_000 => ItemKind.Normal,
|
||||
< 1_000_000 => ItemKind.Collectible,
|
||||
< 2_000_000 => ItemKind.Hq,
|
||||
_ => ItemKind.EventItem
|
||||
};
|
||||
|
||||
var name = kind != ItemPayload.ItemKind.EventItem
|
||||
var name = kind != ItemKind.EventItem
|
||||
? Plugin.DataManager.GetExcelSheet<Item>().GetRow(item.ItemId).Name.ToString()
|
||||
: Plugin.DataManager.GetExcelSheet<EventItem>().GetRow(item.ItemId).Name.ToString();
|
||||
|
||||
@@ -346,13 +346,13 @@ internal partial class Message
|
||||
else if (split == "<flag>")
|
||||
{
|
||||
var agentMap = AgentMap.Instance();
|
||||
if (!agentMap->IsFlagMarkerSet)
|
||||
if (agentMap->FlagMarkerCount == 0)
|
||||
{
|
||||
AddChunkWithMessage(text.NewWithStyle(chunk.Source, chunk.Link, split));
|
||||
continue;
|
||||
}
|
||||
|
||||
var mapCoords = agentMap->FlagMapMarker;
|
||||
var mapCoords = agentMap->FlagMapMarkers[0];
|
||||
var rawX = (int)(MathF.Round(mapCoords.XFloat, 3, MidpointRounding.AwayFromZero) * 1000);
|
||||
var rawY = (int)(MathF.Round(mapCoords.YFloat, 3, MidpointRounding.AwayFromZero) * 1000);
|
||||
|
||||
|
||||
+19
-15
@@ -18,7 +18,7 @@ using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Utility;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Lumina.Excel.Sheets;
|
||||
|
||||
using Action = System.Action;
|
||||
@@ -263,17 +263,21 @@ public sealed class PayloadHandler
|
||||
if (!Plugin.GameConfig.TryGet(UiControlOption.DetailTrackingType, out uint selected) || selected != 0)
|
||||
return;
|
||||
|
||||
if (LogWindow.LastViewport != ImGuiHelpers.MainViewport.NativePtr)
|
||||
if (LogWindow.LastViewport != ImGuiHelpers.MainViewport.Handle)
|
||||
return;
|
||||
|
||||
var atk = (AtkUnitBase*) args.Addon;
|
||||
if (atk->WindowNode == null)
|
||||
var atk = args.Addon;
|
||||
if (atk.IsNull)
|
||||
return;
|
||||
|
||||
if (!atk->IsVisible)
|
||||
var atkBase = (AtkUnitBase*)atk.Address;
|
||||
if (atkBase->WindowNode == null)
|
||||
return;
|
||||
|
||||
var component = atk->WindowNode->AtkResNode;
|
||||
if (!atkBase->IsVisible)
|
||||
return;
|
||||
|
||||
var component = atkBase->WindowNode->AtkResNode;
|
||||
var atkPos = new Vector2(component.ScreenX, component.ScreenY);
|
||||
var atkSize = new Vector2(component.GetWidth() * component.ScaleX, component.GetHeight() * component.GetScaleY());
|
||||
|
||||
@@ -303,7 +307,7 @@ public sealed class PayloadHandler
|
||||
|
||||
if (!chatRect.HasOverlap(addonRect))
|
||||
{
|
||||
atk->SetPosition((short) addonRect.X, (short) addonRect.Y);
|
||||
atkBase->SetPosition((short) addonRect.X, (short) addonRect.Y);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -321,7 +325,7 @@ public sealed class PayloadHandler
|
||||
|
||||
if (!chatRect.HasOverlap(addonRect))
|
||||
{
|
||||
atk->SetPosition((short) addonRect.X, (short) addonRect.Y);
|
||||
atkBase->SetPosition((short) addonRect.X, (short) addonRect.Y);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -330,14 +334,14 @@ public sealed class PayloadHandler
|
||||
var y = Math.Clamp(chatRect.SizeY - atkSize.Y, 0, float.MaxValue);
|
||||
y -= isTop ? 0 : Plugin.Config.TooltipOffset; // offset to prevent cut-off on the bottom
|
||||
|
||||
atk->SetPosition((short) x, (short) y);
|
||||
atkBase->SetPosition((short) x, (short) y);
|
||||
}
|
||||
|
||||
private static void InlineIcon(IDalamudTextureWrap icon)
|
||||
{
|
||||
var cursor = ImGui.GetCursorPos();
|
||||
var size = ImGuiHelpers.ScaledVector2(32, 32);
|
||||
ImGui.Image(icon.ImGuiHandle, size);
|
||||
ImGui.Image(icon.Handle, size);
|
||||
ImGui.SameLine();
|
||||
ImGui.SetCursorPos(cursor + new Vector2(size.X + 4, size.Y - ImGui.GetTextLineHeightWithSpacing()));
|
||||
}
|
||||
@@ -373,7 +377,7 @@ public sealed class PayloadHandler
|
||||
|
||||
private void HoverItem(ItemPayload item)
|
||||
{
|
||||
if (item.Kind == ItemPayload.ItemKind.EventItem)
|
||||
if (item.Kind == ItemKind.EventItem)
|
||||
{
|
||||
HoverEventItem(item);
|
||||
return;
|
||||
@@ -489,7 +493,7 @@ public sealed class PayloadHandler
|
||||
|
||||
private void DrawItemPopup(ItemPayload payload)
|
||||
{
|
||||
if (payload.Kind == ItemPayload.ItemKind.EventItem)
|
||||
if (payload.Kind == ItemKind.EventItem)
|
||||
{
|
||||
DrawEventItemPopup(payload);
|
||||
return;
|
||||
@@ -498,7 +502,7 @@ public sealed class PayloadHandler
|
||||
if (!Sheets.ItemSheet.TryGetRow(payload.ItemId, out var itemRow))
|
||||
return;
|
||||
|
||||
var hq = payload.Kind == ItemPayload.ItemKind.Hq;
|
||||
var hq = payload.Kind == ItemKind.Hq;
|
||||
if (Plugin.TextureProvider.GetFromGameIcon(new GameIconLookup(itemRow.Icon, hq)).GetWrapOrDefault() is { } icon)
|
||||
InlineIcon(icon);
|
||||
|
||||
@@ -506,7 +510,7 @@ public sealed class PayloadHandler
|
||||
// hq symbol
|
||||
if (hq)
|
||||
name.Payloads.Add(new TextPayload(" "));
|
||||
else if (payload.Kind == ItemPayload.ItemKind.Collectible)
|
||||
else if (payload.Kind == ItemKind.Collectible)
|
||||
name.Payloads.Add(new TextPayload(" "));
|
||||
|
||||
LogWindow.DrawChunks(ChunkUtil.ToChunks(name, ChunkSource.None, null).ToList(), false);
|
||||
@@ -538,7 +542,7 @@ public sealed class PayloadHandler
|
||||
|
||||
private void DrawEventItemPopup(ItemPayload payload)
|
||||
{
|
||||
if (payload.Kind != ItemPayload.ItemKind.EventItem)
|
||||
if (payload.Kind != ItemKind.EventItem)
|
||||
return;
|
||||
|
||||
if (!Sheets.EventItemSheet.HasRow(payload.ItemId))
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ using Dalamud.Interface.Windowing;
|
||||
using Dalamud.IoC;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Services;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo;
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
internal class AutoCompleteInfo {
|
||||
internal class AutoCompleteInfo
|
||||
{
|
||||
internal string ToComplete;
|
||||
internal int StartPos { get; }
|
||||
internal int EndPos { get; }
|
||||
|
||||
internal AutoCompleteInfo(string toComplete, int startPos, int endPos) {
|
||||
internal AutoCompleteInfo(string toComplete, int startPos, int endPos)
|
||||
{
|
||||
ToComplete = toComplete;
|
||||
StartPos = startPos;
|
||||
EndPos = endPos;
|
||||
|
||||
+33
-35
@@ -18,7 +18,7 @@ using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Memory;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Lumina.Excel.Sheets;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
@@ -443,10 +443,10 @@ public sealed class ChatLogWindow : Window
|
||||
if (!Plugin.Config.ShowTitleBar)
|
||||
Flags |= ImGuiWindowFlags.NoTitleBar;
|
||||
|
||||
if (LastViewport == ImGuiHelpers.MainViewport.NativePtr && !WasDocked)
|
||||
if (LastViewport == ImGuiHelpers.MainViewport.Handle && !WasDocked)
|
||||
BgAlpha = Plugin.Config.WindowAlpha / 100f;
|
||||
|
||||
LastViewport = ImGui.GetWindowViewport().NativePtr;
|
||||
LastViewport = ImGui.GetWindowViewport().Handle;
|
||||
WasDocked = ImGui.IsWindowDocked();
|
||||
}
|
||||
|
||||
@@ -530,7 +530,7 @@ public sealed class ChatLogWindow : Window
|
||||
if (resized)
|
||||
LastResize.Restart();
|
||||
|
||||
LastViewport = ImGui.GetWindowViewport().NativePtr;
|
||||
LastViewport = ImGui.GetWindowViewport().Handle;
|
||||
WasDocked = ImGui.IsWindowDocked();
|
||||
|
||||
if (IsChatMode && Plugin.InputPreview.IsDrawable)
|
||||
@@ -1430,7 +1430,7 @@ public sealed class ChatLogWindow : Window
|
||||
for (var i = 0; i < 10 && i < AutoCompleteList.Count; i++)
|
||||
{
|
||||
var num = (i + 1) % 10;
|
||||
var key = ImGuiKey._0 + num;
|
||||
var key = ImGuiKey.Key0 + num;
|
||||
var key2 = ImGuiKey.Keypad0 + num;
|
||||
if (ImGui.IsKeyDown(key) || ImGui.IsKeyDown(key2))
|
||||
selected = i;
|
||||
@@ -1460,7 +1460,7 @@ public sealed class ChatLogWindow : Window
|
||||
if (!child.Success)
|
||||
return;
|
||||
|
||||
var clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper_ImGuiListClipper());
|
||||
var clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper());
|
||||
|
||||
clipper.Begin(AutoCompleteList.Count);
|
||||
while (clipper.Step())
|
||||
@@ -1503,19 +1503,19 @@ public sealed class ChatLogWindow : Window
|
||||
ImGui.SetScrollFromPosY(selectedPos - ImGui.GetWindowPos().Y);
|
||||
}
|
||||
|
||||
private unsafe int AutoCompleteCallback(ImGuiInputTextCallbackData* data)
|
||||
private int AutoCompleteCallback(scoped ref ImGuiInputTextCallbackData data)
|
||||
{
|
||||
if (FixCursor && AutoCompleteInfo != null)
|
||||
{
|
||||
FixCursor = false;
|
||||
data->CursorPos = AutoCompleteInfo.ToComplete.Length;
|
||||
data->SelectionStart = data->SelectionEnd = data->CursorPos;
|
||||
data.CursorPos = AutoCompleteInfo.ToComplete.Length;
|
||||
data.SelectionStart = data.SelectionEnd = data.CursorPos;
|
||||
}
|
||||
|
||||
if (AutoCompleteList == null)
|
||||
return 0;
|
||||
|
||||
switch (data->EventKey)
|
||||
switch (data.EventKey)
|
||||
{
|
||||
case ImGuiKey.UpArrow:
|
||||
if (AutoCompleteSelection == 0)
|
||||
@@ -1550,7 +1550,7 @@ public sealed class ChatLogWindow : Window
|
||||
return 0;
|
||||
}
|
||||
|
||||
private unsafe int Callback(ImGuiInputTextCallbackData* data)
|
||||
private unsafe int Callback(scoped ref ImGuiInputTextCallbackData data)
|
||||
{
|
||||
// We play the opening sound here only if closing sound has been played before
|
||||
if (Plugin.Config.PlaySounds && PlayedClosingSound)
|
||||
@@ -1559,22 +1559,20 @@ public sealed class ChatLogWindow : Window
|
||||
UIGlobals.PlaySoundEffect(ChatOpenSfx);
|
||||
}
|
||||
|
||||
var ptr = new ImGuiInputTextCallbackDataPtr(data);
|
||||
|
||||
// Set the cursor pos to the user selected
|
||||
if (Plugin.InputPreview.SelectedCursorPos != -1)
|
||||
ptr.CursorPos = Plugin.InputPreview.SelectedCursorPos;
|
||||
data.CursorPos = Plugin.InputPreview.SelectedCursorPos;
|
||||
Plugin.InputPreview.SelectedCursorPos = -1;
|
||||
|
||||
CursorPos = ptr.CursorPos;
|
||||
if (data->EventFlag == ImGuiInputTextFlags.CallbackCompletion)
|
||||
CursorPos = data.CursorPos;
|
||||
if (data.EventFlag == ImGuiInputTextFlags.CallbackCompletion)
|
||||
{
|
||||
if (ptr.CursorPos == 0)
|
||||
if (data.CursorPos == 0)
|
||||
{
|
||||
AutoCompleteInfo = new AutoCompleteInfo(
|
||||
string.Empty,
|
||||
ptr.CursorPos,
|
||||
ptr.CursorPos
|
||||
data.CursorPos,
|
||||
data.CursorPos
|
||||
);
|
||||
AutoCompleteOpen = true;
|
||||
AutoCompleteSelection = 0;
|
||||
@@ -1583,14 +1581,14 @@ public sealed class ChatLogWindow : Window
|
||||
}
|
||||
|
||||
int white;
|
||||
for (white = ptr.CursorPos - 1; white >= 0; white--)
|
||||
if (data->Buf[white] == ' ')
|
||||
for (white = data.CursorPos - 1; white >= 0; white--)
|
||||
if (data.Buf[white] == ' ')
|
||||
break;
|
||||
|
||||
var start = ptr.Buf + white + 1;
|
||||
var end = ptr.CursorPos - white - 1;
|
||||
var utf8Message = Marshal.PtrToStringUTF8(start, end);
|
||||
var correctedCursor = ptr.CursorPos - (end - utf8Message.Length);
|
||||
var start = data.Buf + white + 1;
|
||||
var end = data.CursorPos - white - 1;
|
||||
var utf8Message = Marshal.PtrToStringUTF8((nint)start, end);
|
||||
var correctedCursor = data.CursorPos - (end - utf8Message.Length);
|
||||
AutoCompleteInfo = new AutoCompleteInfo(
|
||||
utf8Message,
|
||||
white + 1,
|
||||
@@ -1601,20 +1599,20 @@ public sealed class ChatLogWindow : Window
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (data->EventFlag == ImGuiInputTextFlags.CallbackCharFilter)
|
||||
if (!Plugin.Functions.Chat.IsCharValid((char) ptr.EventChar))
|
||||
if (data.EventFlag == ImGuiInputTextFlags.CallbackCharFilter)
|
||||
if (!Plugin.Functions.Chat.IsCharValid((char) data.EventChar))
|
||||
return 1;
|
||||
|
||||
if (Activate)
|
||||
{
|
||||
Activate = false;
|
||||
data->CursorPos = ActivatePos > -1 ? ActivatePos : Chat.Length;
|
||||
data->SelectionStart = data->SelectionEnd = data->CursorPos;
|
||||
data.CursorPos = ActivatePos > -1 ? ActivatePos : Chat.Length;
|
||||
data.SelectionStart = data.SelectionEnd = data.CursorPos;
|
||||
ActivatePos = -1;
|
||||
}
|
||||
|
||||
Plugin.CommandHelpWindow.IsOpen = false;
|
||||
var text = MemoryHelper.ReadString((nint) data->Buf, data->BufTextLen);
|
||||
var text = MemoryHelper.ReadString((nint) data.Buf, data.BufTextLen);
|
||||
if (text.StartsWith('/'))
|
||||
{
|
||||
var command = text.Split(' ')[0];
|
||||
@@ -1626,11 +1624,11 @@ public sealed class ChatLogWindow : Window
|
||||
Plugin.CommandHelpWindow.UpdateContent(cmd.Value);
|
||||
}
|
||||
|
||||
if (data->EventFlag != ImGuiInputTextFlags.CallbackHistory)
|
||||
if (data.EventFlag != ImGuiInputTextFlags.CallbackHistory)
|
||||
return 0;
|
||||
|
||||
var prevPos = InputBacklogIdx;
|
||||
switch (data->EventKey)
|
||||
switch (data.EventKey)
|
||||
{
|
||||
case ImGuiKey.UpArrow:
|
||||
switch (InputBacklogIdx)
|
||||
@@ -1662,8 +1660,8 @@ public sealed class ChatLogWindow : Window
|
||||
return 0;
|
||||
|
||||
var historyStr = InputBacklogIdx >= 0 ? InputBacklog[InputBacklogIdx] : string.Empty;
|
||||
ptr.DeleteChars(0, ptr.BufTextLen);
|
||||
ptr.InsertChars(0, historyStr);
|
||||
data.DeleteChars(0, data.BufTextLen);
|
||||
data.InsertChars(0, historyStr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1793,7 +1791,7 @@ public sealed class ChatLogWindow : Window
|
||||
var uv0 = new Vector2(entry.Left, entry.Top + 170) * 2 / texSize;
|
||||
var uv1 = new Vector2(entry.Left + entry.Width, entry.Top + entry.Height + 170) * 2 / texSize;
|
||||
|
||||
ImGui.Image(iconTexture.ImGuiHandle, size, uv0, uv1);
|
||||
ImGui.Image(iconTexture.Handle, size, uv0, uv1);
|
||||
ImGuiUtil.PostPayload(chunk, handler);
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ using ChatTwo.Util;
|
||||
using Dalamud.Interface.Utility;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Utility;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Lumina.Excel.Sheets;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
@@ -9,7 +9,7 @@ using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.Utility;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.Utility;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Lumina.Text.ReadOnly;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
@@ -10,7 +10,7 @@ using Dalamud.Game.Text.SeStringHandling.Payloads;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Plugin.Services;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using Dalamud.Interface.Style;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Game.Text.SeStringHandling.Payloads;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using ImGuiNET;
|
||||
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Dalamud.Utility;
|
||||
using DalamudPartyFinderPayload = Dalamud.Game.Text.SeStringHandling.Payloads.PartyFinderPayload;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
@@ -146,7 +146,7 @@ public class SeStringDebugger : Window
|
||||
{ "RawItemId", item.RawItemId.ToString() },
|
||||
{ "Kind", EnumName(item.Kind) },
|
||||
{ "IsHQ", item.IsHQ.ToString() },
|
||||
{ "Item.Name", item.Kind == ItemPayload.ItemKind.EventItem ? Sheets.EventItemSheet.GetRow(item.ItemId).Name.ExtractText() : Sheets.ItemSheet.GetRow(item.ItemId).Name.ExtractText() },
|
||||
{ "Item.Name", item.Kind == ItemKind.EventItem ? Sheets.EventItemSheet.GetRow(item.ItemId).Name.ExtractText() : Sheets.ItemSheet.GetRow(item.ItemId).Name.ExtractText() },
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ using ChatTwo.Util;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Utility;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ using Dalamud.Interface;
|
||||
using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.Utility;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ using ChatTwo.Code;
|
||||
using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using Dalamud.Interface;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using Dalamud.Interface.Style;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Game.Text.SeStringHandling.Payloads;
|
||||
using Dalamud.Interface.ImGuiNotification;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ using ChatTwo.Code;
|
||||
using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ using ChatTwo.Util;
|
||||
using Dalamud.Interface;
|
||||
using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using Dalamud;
|
||||
using Dalamud.Interface.FontIdentifier;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ using ChatTwo.Resources;
|
||||
using ChatTwo.Util;
|
||||
using Dalamud.Interface;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ using Dalamud.Interface;
|
||||
using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.ImGuiNotification;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Ui.SettingsTabs;
|
||||
|
||||
|
||||
@@ -83,6 +83,9 @@ internal static class AutoTranslate
|
||||
{
|
||||
if (lookup is not ("" or "@"))
|
||||
{
|
||||
// SE added whitespace to the newest additions, but ParseOrThrow doesn't see them as valid
|
||||
lookup = lookup.Replace(" ", "");
|
||||
|
||||
var (sheetName, selector) = parser.ParseOrThrow(lookup);
|
||||
var sheet = Plugin.DataManager.Excel.GetSheet<WorkingRawRow>(name: sheetName);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ using Dalamud.Interface.ImGuiNotification;
|
||||
using Dalamud.Interface.Utility;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Utility;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Util;
|
||||
|
||||
@@ -91,7 +91,7 @@ public static class DateWidget
|
||||
var arrowLeftWidth = ImGui.CalcTextSize(arrowLeft).X;
|
||||
var arrowRightWidth = ImGui.CalcTextSize(arrowRight).X;
|
||||
|
||||
var labelSize = ImGui.CalcTextSize(label, 0, true);
|
||||
var labelSize = ImGui.CalcTextSize(label, true, 0);
|
||||
|
||||
var widthRequiredByCalendar = (2.0f * arrowLeftWidth) + (2.0f * arrowRightWidth) + LongestMonthWidth + ImGui.CalcTextSize("9999").X + (120.0f * ImGuiHelpers.GlobalScale);
|
||||
var popupHeight = ((labelSize.Y + (2 * style.ItemSpacing.Y)) * HeightInItems) + (style.FramePadding.Y * 3);
|
||||
|
||||
+16
-16
@@ -12,7 +12,7 @@ using Dalamud.Interface.ImGuiFontChooserDialog;
|
||||
using Dalamud.Interface.Style;
|
||||
using Dalamud.Interface.Utility;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
||||
namespace ChatTwo.Util;
|
||||
|
||||
@@ -64,7 +64,7 @@ internal static class ImGuiUtil
|
||||
{
|
||||
var oldPos = ImGui.GetCursorScreenPos();
|
||||
|
||||
ImGuiNative.igTextUnformatted(text, textEnd);
|
||||
ImGuiNative.TextUnformatted(text, textEnd);
|
||||
PostPayload(chunk, handler);
|
||||
|
||||
if (!ReferenceEquals(LastLink, chunk.Link))
|
||||
@@ -107,7 +107,7 @@ internal static class ImGuiUtil
|
||||
}
|
||||
|
||||
var widthLeft = ImGui.GetContentRegionAvail().X;
|
||||
var endPrevLine = ImGuiNative.ImFont_CalcWordWrapPositionA(ImGui.GetFont().NativePtr, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft);
|
||||
var endPrevLine = ImGuiNative.CalcWordWrapPositionA(ImGui.GetFont().Handle, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft);
|
||||
if (endPrevLine == null)
|
||||
continue;
|
||||
|
||||
@@ -126,7 +126,7 @@ internal static class ImGuiUtil
|
||||
else
|
||||
{
|
||||
// check if the next bit is longer than the entire line width
|
||||
var wrapPos = ImGuiNative.ImFont_CalcWordWrapPositionA(ImGui.GetFont().NativePtr, ImGuiHelpers.GlobalScale, text, firstSpace, lineWidth);
|
||||
var wrapPos = ImGuiNative.CalcWordWrapPositionA(ImGui.GetFont().Handle, ImGuiHelpers.GlobalScale, text, firstSpace, lineWidth);
|
||||
|
||||
// only go to next line is it's going to wrap at the space
|
||||
if (wrapPos >= firstSpace)
|
||||
@@ -144,7 +144,7 @@ internal static class ImGuiUtil
|
||||
if (*text == ' ')
|
||||
++text;
|
||||
|
||||
var newEnd = ImGuiNative.ImFont_CalcWordWrapPositionA(ImGui.GetFont().NativePtr, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft);
|
||||
var newEnd = ImGuiNative.CalcWordWrapPositionA(ImGui.GetFont().Handle, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft);
|
||||
if (properBreak && newEnd == endPrevLine)
|
||||
break;
|
||||
|
||||
@@ -257,7 +257,7 @@ internal static class ImGuiUtil
|
||||
{
|
||||
ImGui.TextUnformatted(label);
|
||||
ImGui.SetNextItemWidth(-1);
|
||||
var r = ImGui.InputInt($"##{label}", ref value, step, stepFast, flags);
|
||||
var r = ImGui.InputInt($"##{label}", ref value, step, stepFast, flags: flags);
|
||||
HelpText(description);
|
||||
|
||||
return r;
|
||||
@@ -475,16 +475,16 @@ internal static class ImGuiUtil
|
||||
VirtualKey.SNAPSHOT => ImGuiKey.PrintScreen,
|
||||
VirtualKey.INSERT => ImGuiKey.Insert,
|
||||
VirtualKey.DELETE => ImGuiKey.Delete,
|
||||
VirtualKey.KEY_0 => ImGuiKey._0,
|
||||
VirtualKey.KEY_1 => ImGuiKey._1,
|
||||
VirtualKey.KEY_2 => ImGuiKey._2,
|
||||
VirtualKey.KEY_3 => ImGuiKey._3,
|
||||
VirtualKey.KEY_4 => ImGuiKey._4,
|
||||
VirtualKey.KEY_5 => ImGuiKey._5,
|
||||
VirtualKey.KEY_6 => ImGuiKey._6,
|
||||
VirtualKey.KEY_7 => ImGuiKey._7,
|
||||
VirtualKey.KEY_8 => ImGuiKey._8,
|
||||
VirtualKey.KEY_9 => ImGuiKey._9,
|
||||
VirtualKey.KEY_0 => ImGuiKey.Key0,
|
||||
VirtualKey.KEY_1 => ImGuiKey.Key1,
|
||||
VirtualKey.KEY_2 => ImGuiKey.Key2,
|
||||
VirtualKey.KEY_3 => ImGuiKey.Key3,
|
||||
VirtualKey.KEY_4 => ImGuiKey.Key4,
|
||||
VirtualKey.KEY_5 => ImGuiKey.Key5,
|
||||
VirtualKey.KEY_6 => ImGuiKey.Key6,
|
||||
VirtualKey.KEY_7 => ImGuiKey.Key7,
|
||||
VirtualKey.KEY_8 => ImGuiKey.Key8,
|
||||
VirtualKey.KEY_9 => ImGuiKey.Key9,
|
||||
VirtualKey.A => ImGuiKey.A,
|
||||
VirtualKey.B => ImGuiKey.B,
|
||||
VirtualKey.C => ImGuiKey.C,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Numerics;
|
||||
using Dalamud.Interface.Utility;
|
||||
using ImGuiNET;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using System.Collections;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
|
||||
@@ -147,7 +147,7 @@ public unsafe class ListClipper : IEnumerable<(int, int)>, IDisposable
|
||||
CurrentColumns = cols;
|
||||
CurrentRows = TwoDimensional ? items : (int)MathF.Ceiling((float)items / CurrentColumns);
|
||||
ItemRemainder = !TwoDimensional ? items % CurrentColumns : 0;
|
||||
Clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper_ImGuiListClipper());
|
||||
Clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper());
|
||||
Clipper.Begin(CurrentRows, itemHeight);
|
||||
}
|
||||
|
||||
|
||||
+15
-15
@@ -4,9 +4,9 @@
|
||||
"net9.0-windows7.0": {
|
||||
"DalamudPackager": {
|
||||
"type": "Direct",
|
||||
"requested": "[12.0.0, )",
|
||||
"resolved": "12.0.0",
|
||||
"contentHash": "J5TJLV3f16T/E2H2P17ClWjtfEBPpq3yxvqW46eN36JCm6wR+EaoaYkqG9Rm5sHqs3/nK/vKjWWyvEs/jhKoXw=="
|
||||
"requested": "[13.0.0, )",
|
||||
"resolved": "13.0.0",
|
||||
"contentHash": "Mb3cUDSK/vDPQ8gQIeuCw03EMYrej1B4J44a1AvIJ9C759p9XeqdU9Hg4WgOmlnlPe0G7ILTD32PKSUpkQNa8w=="
|
||||
},
|
||||
"DotNet.ReproducibleBuilds": {
|
||||
"type": "Direct",
|
||||
@@ -16,12 +16,12 @@
|
||||
},
|
||||
"MessagePack": {
|
||||
"type": "Direct",
|
||||
"requested": "[3.1.3, )",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==",
|
||||
"requested": "[3.1.4, )",
|
||||
"resolved": "3.1.4",
|
||||
"contentHash": "BH0wlHWmVoZpbAPyyt2Awbq30C+ZsS3eHSkYdnyUAbqVJ22fAJDzn2xTieBeoT5QlcBzp61vHcv878YJGfi3mg==",
|
||||
"dependencies": {
|
||||
"MessagePack.Annotations": "3.1.3",
|
||||
"MessagePackAnalyzer": "3.1.3",
|
||||
"MessagePack.Annotations": "3.1.4",
|
||||
"MessagePackAnalyzer": "3.1.4",
|
||||
"Microsoft.NET.StringTools": "17.11.4"
|
||||
}
|
||||
},
|
||||
@@ -44,9 +44,9 @@
|
||||
},
|
||||
"SixLabors.ImageSharp": {
|
||||
"type": "Direct",
|
||||
"requested": "[3.1.7, )",
|
||||
"resolved": "3.1.7",
|
||||
"contentHash": "9fIOOAsyLFid6qKypM2Iy0Z3Q9yoanV8VoYAHtI2sYGMNKzhvRTjgFDHonIiVe+ANtxIxM6SuqUzj0r91nItpA=="
|
||||
"requested": "[3.1.11, )",
|
||||
"resolved": "3.1.11",
|
||||
"contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
|
||||
},
|
||||
"Watson.Lite": {
|
||||
"type": "Direct",
|
||||
@@ -70,13 +70,13 @@
|
||||
},
|
||||
"MessagePack.Annotations": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "XTy4njgTAf6UVBKFj7c7ad5R0WVKbvAgkbYZy4f00kplzX2T3VOQ34AUke/Vn/QgQZ7ETdd34/IDWS3KBInSGA=="
|
||||
"resolved": "3.1.4",
|
||||
"contentHash": "aVWrDAkCdqxwQsz/q0ldPh2EFn48M99YUzE9OvZjMq2RNLKz4o2z88iGFvSvbMqOWRweRvKPHBJZe22PRqzslQ=="
|
||||
},
|
||||
"MessagePackAnalyzer": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "19u1oVNv2brCs5F/jma8O8CnsKMMpYwNqD0CAEDEzvqwDTAhqC9r7xHZP4stPb3APs/ryO/zVn7LvjoEHfvs7Q=="
|
||||
"resolved": "3.1.4",
|
||||
"contentHash": "CTaSsN/liJ7MhLCAB7Z4ZLBNuVGCq9lt2BT/cbrc9vzGv89yK3CqIA+z9T19a11eQYl9etZHL6MQJgCqECRVpg=="
|
||||
},
|
||||
"Microsoft.Data.Sqlite.Core": {
|
||||
"type": "Transitive",
|
||||
|
||||
Reference in New Issue
Block a user