From 20fbf4e004965429f66c2c21f0bf34d3f2369cb8 Mon Sep 17 00:00:00 2001 From: Anna Date: Thu, 3 Feb 2022 19:52:11 -0500 Subject: [PATCH] feat: add novice network button --- ChatTwo/GameFunctions/GameFunctions.cs | 13 +++++++++++++ ChatTwo/Ui/ChatLog.cs | 8 +++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ChatTwo/GameFunctions/GameFunctions.cs b/ChatTwo/GameFunctions/GameFunctions.cs index 28f5080..ff46574 100755 --- a/ChatTwo/GameFunctions/GameFunctions.cs +++ b/ChatTwo/GameFunctions/GameFunctions.cs @@ -7,6 +7,7 @@ using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using Lumina.Excel.GeneratedSheets; +using ValueType = FFXIVClientStructs.FFXIV.Component.GUI.ValueType; namespace ChatTwo.GameFunctions; @@ -254,6 +255,18 @@ internal unsafe class GameFunctions : IDisposable { } } + internal void ClickNoviceNetworkButton() { + var agent = Framework.Instance()->GetUiModule()->GetAgentModule()->GetAgentByInternalId(AgentId.ChatLog); + // case 3 + var value = new AtkValue { + Type = ValueType.Int, + Int = 3, + }; + int result = 0; + var vf0 = *(delegate* unmanaged*) agent->VTable; + vf0(agent, &result, &value, 0, 0); + } + private readonly IntPtr _placeholderNamePtr = Marshal.AllocHGlobal(128); private readonly string _placeholder = $"<{Guid.NewGuid():N}>"; private string? _replacementName; diff --git a/ChatTwo/Ui/ChatLog.cs b/ChatTwo/Ui/ChatLog.cs index 1b40425..ced28dd 100755 --- a/ChatTwo/Ui/ChatLog.cs +++ b/ChatTwo/Ui/ChatLog.cs @@ -407,7 +407,7 @@ internal sealed class ChatLog : IUiComponent { var afterIcon = ImGui.GetCursorPos(); var buttonWidth = afterIcon.X - beforeIcon.X; - var inputWidth = ImGui.GetContentRegionAvail().X - buttonWidth; + var inputWidth = ImGui.GetContentRegionAvail().X - buttonWidth * 2; var inputType = this._tempChannel?.ToChatType() ?? activeTab?.Channel?.ToChatType() ?? this.Ui.Plugin.Functions.Chat.Channel.channel.ToChatType(); if (this.Chat.Trim().StartsWith('/')) { @@ -505,6 +505,12 @@ internal sealed class ChatLog : IUiComponent { this.Ui.SettingsVisible ^= true; } + ImGui.SameLine(); + + if (ImGuiUtil.IconButton(FontAwesomeIcon.Leaf)) { + this.Ui.Plugin.Functions.ClickNoviceNetworkButton(); + } + ImGui.End(); }