From 471005b5b1f28bc2f7abc7965a8075b3d0683138 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Sun, 22 Jan 2023 15:15:49 +0100 Subject: [PATCH] Fix group banner identification. --- Penumbra.GameData/Actors/ActorManager.Data.cs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Penumbra.GameData/Actors/ActorManager.Data.cs b/Penumbra.GameData/Actors/ActorManager.Data.cs index 0a030b28..20fbe679 100644 --- a/Penumbra.GameData/Actors/ActorManager.Data.cs +++ b/Penumbra.GameData/Actors/ActorManager.Data.cs @@ -13,6 +13,7 @@ using Dalamud.Utility; using Dalamud.Utility.Signatures; using FFXIVClientStructs.FFXIV.Client.Game.Group; using FFXIVClientStructs.FFXIV.Client.Game.Object; +using FFXIVClientStructs.FFXIV.Client.System.Framework; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using Lumina.Excel.GeneratedSheets; @@ -204,21 +205,15 @@ public sealed partial class ActorManager : IDisposable public unsafe bool ResolvePartyBannerPlayer(ScreenActor type, out ActorIdentifier id) { id = ActorIdentifier.Invalid; - var addon = _gameGui.GetAddonByName("BannerParty"); - if (addon == IntPtr.Zero) + var addon = Framework.Instance()->GetUiModule()->GetAgentModule()->GetAgentByInternalId(AgentId.BannerParty); + if (addon == null || !addon->IsAgentActive()) return false; var idx = (ushort)type - (ushort)ScreenActor.CharacterScreen; if (idx is < 0 or > 7) return true; - if (idx == 0) - { - id = GetCurrentPlayer(); - return true; - } - - var obj = GroupManager.Instance()->GetPartyMemberByIndex(idx - 1); + var obj = GroupManager.Instance()->GetPartyMemberByIndex(idx); if (obj != null) id = CreatePlayer(new ByteString(obj->Name), obj->HomeWorld);