Re-enable / update Heels/Honorific
This commit is contained in:
		| @@ -40,15 +40,15 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|     private readonly ICallGateSubscriber<(int, int)> _heelsGetApiVersion; |     private readonly ICallGateSubscriber<(int, int)> _heelsGetApiVersion; | ||||||
|     private readonly ICallGateSubscriber<string> _heelsGetOffset; |     private readonly ICallGateSubscriber<string> _heelsGetOffset; | ||||||
|     private readonly ICallGateSubscriber<string, object?> _heelsOffsetUpdate; |     private readonly ICallGateSubscriber<string, object?> _heelsOffsetUpdate; | ||||||
|     private readonly ICallGateSubscriber<IGameObject, string, object?> _heelsRegisterPlayer; |     private readonly ICallGateSubscriber<int, string, object?> _heelsRegisterPlayer; | ||||||
|     private readonly ICallGateSubscriber<IGameObject, object?> _heelsUnregisterPlayer; |     private readonly ICallGateSubscriber<int, object?> _heelsUnregisterPlayer; | ||||||
|     private readonly ICallGateSubscriber<(uint major, uint minor)> _honorificApiVersion; |     private readonly ICallGateSubscriber<(uint major, uint minor)> _honorificApiVersion; | ||||||
|     private readonly ICallGateSubscriber<ICharacter, object> _honorificClearCharacterTitle; |     private readonly ICallGateSubscriber<int, object> _honorificClearCharacterTitle; | ||||||
|     private readonly ICallGateSubscriber<object> _honorificDisposing; |     private readonly ICallGateSubscriber<object> _honorificDisposing; | ||||||
|     private readonly ICallGateSubscriber<string> _honorificGetLocalCharacterTitle; |     private readonly ICallGateSubscriber<string> _honorificGetLocalCharacterTitle; | ||||||
|     private readonly ICallGateSubscriber<string, object> _honorificLocalCharacterTitleChanged; |     private readonly ICallGateSubscriber<string, object> _honorificLocalCharacterTitleChanged; | ||||||
|     private readonly ICallGateSubscriber<object> _honorificReady; |     private readonly ICallGateSubscriber<object> _honorificReady; | ||||||
|     private readonly ICallGateSubscriber<ICharacter, string, object> _honorificSetCharacterTitle; |     private readonly ICallGateSubscriber<int, string, object> _honorificSetCharacterTitle; | ||||||
|     private readonly ConcurrentDictionary<IntPtr, bool> _penumbraRedrawRequests = new(); |     private readonly ConcurrentDictionary<IntPtr, bool> _penumbraRedrawRequests = new(); | ||||||
|     private readonly Penumbra.Api.Helpers.EventSubscriber _penumbraDispose; |     private readonly Penumbra.Api.Helpers.EventSubscriber _penumbraDispose; | ||||||
|     private readonly Penumbra.Api.Helpers.EventSubscriber<nint, string, string> _penumbraGameObjectResourcePathResolved; |     private readonly Penumbra.Api.Helpers.EventSubscriber<nint, string, string> _penumbraGameObjectResourcePathResolved; | ||||||
| @@ -156,8 +156,8 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|  |  | ||||||
|         _heelsGetApiVersion = pi.GetIpcSubscriber<(int, int)>("SimpleHeels.ApiVersion"); |         _heelsGetApiVersion = pi.GetIpcSubscriber<(int, int)>("SimpleHeels.ApiVersion"); | ||||||
|         _heelsGetOffset = pi.GetIpcSubscriber<string>("SimpleHeels.GetLocalPlayer"); |         _heelsGetOffset = pi.GetIpcSubscriber<string>("SimpleHeels.GetLocalPlayer"); | ||||||
|         _heelsRegisterPlayer = pi.GetIpcSubscriber<IGameObject, string, object?>("SimpleHeels.RegisterPlayer"); |         _heelsRegisterPlayer = pi.GetIpcSubscriber<int, string, object?>("SimpleHeels.RegisterPlayer"); | ||||||
|         _heelsUnregisterPlayer = pi.GetIpcSubscriber<IGameObject, object?>("SimpleHeels.UnregisterPlayer"); |         _heelsUnregisterPlayer = pi.GetIpcSubscriber<int, object?>("SimpleHeels.UnregisterPlayer"); | ||||||
|         _heelsOffsetUpdate = pi.GetIpcSubscriber<string, object?>("SimpleHeels.LocalChanged"); |         _heelsOffsetUpdate = pi.GetIpcSubscriber<string, object?>("SimpleHeels.LocalChanged"); | ||||||
|  |  | ||||||
|         _heelsOffsetUpdate.Subscribe(HeelsOffsetChange); |         _heelsOffsetUpdate.Subscribe(HeelsOffsetChange); | ||||||
| @@ -174,8 +174,8 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|  |  | ||||||
|         _honorificApiVersion = pi.GetIpcSubscriber<(uint, uint)>("Honorific.ApiVersion"); |         _honorificApiVersion = pi.GetIpcSubscriber<(uint, uint)>("Honorific.ApiVersion"); | ||||||
|         _honorificGetLocalCharacterTitle = pi.GetIpcSubscriber<string>("Honorific.GetLocalCharacterTitle"); |         _honorificGetLocalCharacterTitle = pi.GetIpcSubscriber<string>("Honorific.GetLocalCharacterTitle"); | ||||||
|         _honorificClearCharacterTitle = pi.GetIpcSubscriber<ICharacter, object>("Honorific.ClearCharacterTitle"); |         _honorificClearCharacterTitle = pi.GetIpcSubscriber<int, object>("Honorific.ClearCharacterTitle"); | ||||||
|         _honorificSetCharacterTitle = pi.GetIpcSubscriber<ICharacter, string, object>("Honorific.SetCharacterTitle"); |         _honorificSetCharacterTitle = pi.GetIpcSubscriber<int, string, object>("Honorific.SetCharacterTitle"); | ||||||
|         _honorificLocalCharacterTitleChanged = pi.GetIpcSubscriber<string, object>("Honorific.LocalCharacterTitleChanged"); |         _honorificLocalCharacterTitleChanged = pi.GetIpcSubscriber<string, object>("Honorific.LocalCharacterTitleChanged"); | ||||||
|         _honorificDisposing = pi.GetIpcSubscriber<object>("Honorific.Disposing"); |         _honorificDisposing = pi.GetIpcSubscriber<object>("Honorific.Disposing"); | ||||||
|         _honorificReady = pi.GetIpcSubscriber<object>("Honorific.Ready"); |         _honorificReady = pi.GetIpcSubscriber<object>("Honorific.Ready"); | ||||||
| @@ -445,7 +445,7 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|             if (gameObj != null) |             if (gameObj != null) | ||||||
|             { |             { | ||||||
|                 Logger.LogTrace("Restoring Heels data to {chara}", character.ToString("X")); |                 Logger.LogTrace("Restoring Heels data to {chara}", character.ToString("X")); | ||||||
|                 _heelsUnregisterPlayer.InvokeAction(gameObj); |                 _heelsUnregisterPlayer.InvokeAction(gameObj.ObjectIndex); | ||||||
|             } |             } | ||||||
|         }).ConfigureAwait(false); |         }).ConfigureAwait(false); | ||||||
|     } |     } | ||||||
| @@ -459,7 +459,7 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|             if (gameObj != null) |             if (gameObj != null) | ||||||
|             { |             { | ||||||
|                 Logger.LogTrace("Applying Heels data to {chara}", character.ToString("X")); |                 Logger.LogTrace("Applying Heels data to {chara}", character.ToString("X")); | ||||||
|                 _heelsRegisterPlayer.InvokeAction(gameObj, data); |                 _heelsRegisterPlayer.InvokeAction(gameObj.ObjectIndex, data); | ||||||
|             } |             } | ||||||
|         }).ConfigureAwait(false); |         }).ConfigureAwait(false); | ||||||
|     } |     } | ||||||
| @@ -473,7 +473,7 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|             if (gameObj is IPlayerCharacter c) |             if (gameObj is IPlayerCharacter c) | ||||||
|             { |             { | ||||||
|                 Logger.LogTrace("Honorific removing for {addr}", c.Address.ToString("X")); |                 Logger.LogTrace("Honorific removing for {addr}", c.Address.ToString("X")); | ||||||
|                 _honorificClearCharacterTitle!.InvokeAction(c); |                 _honorificClearCharacterTitle!.InvokeAction(c.ObjectIndex); | ||||||
|             } |             } | ||||||
|         }).ConfigureAwait(false); |         }).ConfigureAwait(false); | ||||||
|     } |     } | ||||||
| @@ -499,11 +499,11 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|                     string honorificData = string.IsNullOrEmpty(honorificDataB64) ? string.Empty : Encoding.UTF8.GetString(Convert.FromBase64String(honorificDataB64)); |                     string honorificData = string.IsNullOrEmpty(honorificDataB64) ? string.Empty : Encoding.UTF8.GetString(Convert.FromBase64String(honorificDataB64)); | ||||||
|                     if (string.IsNullOrEmpty(honorificData)) |                     if (string.IsNullOrEmpty(honorificData)) | ||||||
|                     { |                     { | ||||||
|                         _honorificClearCharacterTitle!.InvokeAction(pc); |                         _honorificClearCharacterTitle!.InvokeAction(pc.ObjectIndex); | ||||||
|                     } |                     } | ||||||
|                     else |                     else | ||||||
|                     { |                     { | ||||||
|                         _honorificSetCharacterTitle!.InvokeAction(pc, honorificData); |                         _honorificSetCharacterTitle!.InvokeAction(pc.ObjectIndex, honorificData); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             }).ConfigureAwait(false); |             }).ConfigureAwait(false); | ||||||
| @@ -776,10 +776,9 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|  |  | ||||||
|     private bool CheckHeelsApiInternal() |     private bool CheckHeelsApiInternal() | ||||||
|     { |     { | ||||||
|         return false; |  | ||||||
|         try |         try | ||||||
|         { |         { | ||||||
|             return _heelsGetApiVersion.InvokeFunc() is { Item1: 1, Item2: >= 0 }; |             return _heelsGetApiVersion.InvokeFunc() is { Item1: 2, Item2: >= 0 }; | ||||||
|         } |         } | ||||||
|         catch |         catch | ||||||
|         { |         { | ||||||
| @@ -789,10 +788,9 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|  |  | ||||||
|     private bool CheckHonorificApiInternal() |     private bool CheckHonorificApiInternal() | ||||||
|     { |     { | ||||||
|         return false; |  | ||||||
|         try |         try | ||||||
|         { |         { | ||||||
|             return _honorificApiVersion.InvokeFunc() is { Item1: 2, Item2: >= 0 }; |             return _honorificApiVersion.InvokeFunc() is { Item1: 3, Item2: >= 0 }; | ||||||
|         } |         } | ||||||
|         catch |         catch | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -763,7 +763,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase | |||||||
|         ImGui.SameLine(); |         ImGui.SameLine(); | ||||||
|         AttachToolTip($"Glamourer is " + (_glamourerExists ? "available and up to date." : "unavailable or not up to date.")); |         AttachToolTip($"Glamourer is " + (_glamourerExists ? "available and up to date." : "unavailable or not up to date.")); | ||||||
|         ImGui.Spacing(); |         ImGui.Spacing(); | ||||||
| #if false |  | ||||||
|         if (intro) |         if (intro) | ||||||
|         { |         { | ||||||
|             ImGui.SetWindowFontScale(0.8f); |             ImGui.SetWindowFontScale(0.8f); | ||||||
| @@ -784,6 +784,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase | |||||||
|         AttachToolTip($"SimpleHeels is " + (_heelsExists ? "available and up to date." : "unavailable or not up to date.")); |         AttachToolTip($"SimpleHeels is " + (_heelsExists ? "available and up to date." : "unavailable or not up to date.")); | ||||||
|         ImGui.Spacing(); |         ImGui.Spacing(); | ||||||
|  |  | ||||||
|  | #if false | ||||||
|         ImGui.SameLine(); |         ImGui.SameLine(); | ||||||
|         ImGui.TextUnformatted("Customize+"); |         ImGui.TextUnformatted("Customize+"); | ||||||
|         ImGui.SameLine(); |         ImGui.SameLine(); | ||||||
| @@ -791,6 +792,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase | |||||||
|         ImGui.SameLine(); |         ImGui.SameLine(); | ||||||
|         AttachToolTip($"Customize+ is " + (_customizePlusExists ? "available and up to date." : "unavailable or not up to date.")); |         AttachToolTip($"Customize+ is " + (_customizePlusExists ? "available and up to date." : "unavailable or not up to date.")); | ||||||
|         ImGui.Spacing(); |         ImGui.Spacing(); | ||||||
|  | #endif | ||||||
|  |  | ||||||
|         ImGui.SameLine(); |         ImGui.SameLine(); | ||||||
|         ImGui.TextUnformatted("Honorific"); |         ImGui.TextUnformatted("Honorific"); | ||||||
| @@ -799,7 +801,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase | |||||||
|         ImGui.SameLine(); |         ImGui.SameLine(); | ||||||
|         AttachToolTip($"Honorific is " + (_honorificExists ? "available and up to date." : "unavailable or not up to date.")); |         AttachToolTip($"Honorific is " + (_honorificExists ? "available and up to date." : "unavailable or not up to date.")); | ||||||
|         ImGui.Spacing(); |         ImGui.Spacing(); | ||||||
| #endif |  | ||||||
|         if (!_penumbraExists || !_glamourerExists) |         if (!_penumbraExists || !_glamourerExists) | ||||||
|         { |         { | ||||||
|             ImGui.TextColored(ImGuiColors.DalamudRed, "You need to install both Penumbra and Glamourer and keep them up to date to use Loporrit."); |             ImGui.TextColored(ImGuiColors.DalamudRed, "You need to install both Penumbra and Glamourer and keep them up to date to use Loporrit."); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Loporrit
					Loporrit