From 9a72e2025ed676e916274397d635c4e3104321d6 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Fri, 4 Nov 2022 18:47:43 +0100 Subject: [PATCH] also return SafeNamePlateObject at AddonNamePlate_SetPlayerNameManaged --- .../AddonNamePlate_SetPlayerNameManagedEventArgs.cs | 2 ++ Pilz.Dalamud/Nameplates/Model/SafeNameplateInfo.cs | 10 +++++----- Pilz.Dalamud/Nameplates/NameplateHooks.cs | 6 ++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Pilz.Dalamud/Nameplates/EventArgs/AddonNamePlate_SetPlayerNameManagedEventArgs.cs b/Pilz.Dalamud/Nameplates/EventArgs/AddonNamePlate_SetPlayerNameManagedEventArgs.cs index fdad563..7cb50a1 100644 --- a/Pilz.Dalamud/Nameplates/EventArgs/AddonNamePlate_SetPlayerNameManagedEventArgs.cs +++ b/Pilz.Dalamud/Nameplates/EventArgs/AddonNamePlate_SetPlayerNameManagedEventArgs.cs @@ -1,4 +1,5 @@ using Dalamud.Game.Text.SeStringHandling; +using Pilz.Dalamud.Nameplates.Model; using System; using System.Collections.Generic; using System.Linq; @@ -12,6 +13,7 @@ namespace Pilz.Dalamud.Nameplates.EventArgs private new AddonNamePlate_SetPlayerNameEventArgs OriginalEventArgs => base.OriginalEventArgs as AddonNamePlate_SetPlayerNameEventArgs; + public SafeNameplateObject SafeNameplateObject { get; set; } public SeString Title { get; set; } public SeString Name { get; set; } public SeString FreeCompany { get; set; } diff --git a/Pilz.Dalamud/Nameplates/Model/SafeNameplateInfo.cs b/Pilz.Dalamud/Nameplates/Model/SafeNameplateInfo.cs index 7c1abd5..5076d63 100644 --- a/Pilz.Dalamud/Nameplates/Model/SafeNameplateInfo.cs +++ b/Pilz.Dalamud/Nameplates/Model/SafeNameplateInfo.cs @@ -21,11 +21,11 @@ namespace Pilz.Dalamud.Nameplates.Model Data = Marshal.PtrToStructure(Pointer); } - public IntPtr NameAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.Name)); - public IntPtr FcNameAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.FcName)); - public IntPtr TitleAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.Title)); - public IntPtr DisplayTitleAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.DisplayTitle)); - public IntPtr LevelTextAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.LevelText)); + internal IntPtr NameAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.Name)); + internal IntPtr FcNameAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.FcName)); + internal IntPtr TitleAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.Title)); + internal IntPtr DisplayTitleAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.DisplayTitle)); + internal IntPtr LevelTextAddress => GetStringPtr(nameof(RaptureAtkModule.NamePlateInfo.LevelText)); public string Name => GetString(NameAddress); public string FcName => GetString(FcNameAddress); diff --git a/Pilz.Dalamud/Nameplates/NameplateHooks.cs b/Pilz.Dalamud/Nameplates/NameplateHooks.cs index be8ff2c..659705a 100644 --- a/Pilz.Dalamud/Nameplates/NameplateHooks.cs +++ b/Pilz.Dalamud/Nameplates/NameplateHooks.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Pilz.Dalamud.Nameplates.Model; namespace Pilz.Dalamud.Nameplates { @@ -110,9 +111,14 @@ namespace Pilz.Dalamud.Nameplates if (AddonNamePlate_SetPlayerNameManaged != null) { + // Create NamePlateObject if possible + var namePlateObj = new SafeNameplateObject(playerNameplateObjectPtr); + + // Create new event var managedEventArgs = new AddonNamePlate_SetPlayerNameManagedEventArgs { OriginalEventArgs = eventArgs, + SafeNameplateObject = namePlateObj, Title = GameInterfaceHelper.ReadSeString(eventArgs.TitlePtr), Name = GameInterfaceHelper.ReadSeString(eventArgs.NamePtr), FreeCompany = GameInterfaceHelper.ReadSeString(eventArgs.FreeCompanyPtr)