Some code fixes
This commit is contained in:
@@ -194,7 +194,6 @@ namespace PlayerTags.GameInterface.ContextMenus
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (m_PluginAddressResolver.AtkValueChangeTypePtr.HasValue)
|
||||
{
|
||||
m_AtkValueChangeType = Marshal.GetDelegateForFunctionPointer<AtkValueChangeTypeDelegate_Unmanaged>(m_PluginAddressResolver.AtkValueChangeTypePtr.Value);
|
||||
@@ -505,7 +504,7 @@ namespace PlayerTags.GameInterface.ContextMenus
|
||||
SeString objectName;
|
||||
unsafe
|
||||
{
|
||||
objectName = Helper.ReadSeString((IntPtr)agentContext->ObjectName.StringPtr);
|
||||
objectName = GameInterfaceHelper.ReadSeString((IntPtr)agentContext->ObjectName.StringPtr);
|
||||
}
|
||||
|
||||
contextMenuOpenedArgs = new ContextMenuOpenedArgs(addon, agent, parentAddonName, initialContextMenuItems)
|
||||
@@ -624,16 +623,6 @@ namespace PlayerTags.GameInterface.ContextMenus
|
||||
m_InventoryContextMenuEvent30Hook.Original(agent, a2, a3, a4, a5);
|
||||
}
|
||||
|
||||
private void SetFlag(ref uint mask, int itemIndex, bool value)
|
||||
{
|
||||
mask &= ~((uint)1 << itemIndex);
|
||||
|
||||
if (value)
|
||||
{
|
||||
mask |= (uint)(1 << itemIndex);
|
||||
}
|
||||
}
|
||||
|
||||
private unsafe string? GetParentAddonName(IntPtr addon)
|
||||
{
|
||||
if (m_GetAddonById == null)
|
||||
@@ -650,7 +639,7 @@ namespace PlayerTags.GameInterface.ContextMenus
|
||||
var atkStage = AtkStage.GetSingleton();
|
||||
var parentAddonPtr = m_GetAddonById((IntPtr)atkStage->RaptureAtkUnitManager, parentAddonId);
|
||||
|
||||
return Helper.ReadString(parentAddonPtr + 8);
|
||||
return GameInterfaceHelper.ReadString(parentAddonPtr + 8);
|
||||
}
|
||||
|
||||
private unsafe bool IsInventoryContext(IntPtr agent)
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace PlayerTags.GameInterface.ContextMenus
|
||||
{
|
||||
try
|
||||
{
|
||||
Helper.TryReadSeString((IntPtr)(&m_AtkValues[1])->String, out var str);
|
||||
GameInterfaceHelper.TryReadSeString((IntPtr)(&m_AtkValues[1])->String, out var str);
|
||||
return str;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -231,7 +231,7 @@ namespace PlayerTags.GameInterface.ContextMenus
|
||||
{
|
||||
continue;
|
||||
}
|
||||
var name = Helper.ReadSeString((IntPtr)nameAtkValue->String);
|
||||
var name = GameInterfaceHelper.ReadSeString((IntPtr)nameAtkValue->String);
|
||||
|
||||
// Get the enabled state. Note that SE stores this as IsDisabled, NOT IsEnabled (those heathens)
|
||||
var isEnabled = true;
|
||||
@@ -448,7 +448,7 @@ namespace PlayerTags.GameInterface.ContextMenus
|
||||
|| (int)atkValue->Type == 38
|
||||
|| (int)atkValue->Type == 8)
|
||||
{
|
||||
if (Helper.TryReadSeString((IntPtr)atkValue->String, out var str))
|
||||
if (GameInterfaceHelper.TryReadSeString((IntPtr)atkValue->String, out var str))
|
||||
{
|
||||
value = str;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace PlayerTags.GameInterface
|
||||
{
|
||||
public static class Helper
|
||||
public static class GameInterfaceHelper
|
||||
{
|
||||
public static SeString ReadSeString(IntPtr ptr)
|
||||
{
|
||||
@@ -88,57 +88,57 @@ namespace PlayerTags.GameInterface.Nameplates
|
||||
PlayerCharacter? playerCharacter = GetNameplateGameObject<PlayerCharacter>(playerNameplateObjectPtr);
|
||||
if (playerCharacter != null)
|
||||
{
|
||||
PlayerNameplateUpdatedArgs playerNameplateOpenedArgs = new PlayerNameplateUpdatedArgs(
|
||||
PlayerNameplateUpdatedArgs playerNameplateUpdatedArgs = new PlayerNameplateUpdatedArgs(
|
||||
playerCharacter,
|
||||
Helper.ReadSeString(namePtr),
|
||||
Helper.ReadSeString(titlePtr),
|
||||
Helper.ReadSeString(freeCompanyPtr),
|
||||
GameInterfaceHelper.ReadSeString(namePtr),
|
||||
GameInterfaceHelper.ReadSeString(titlePtr),
|
||||
GameInterfaceHelper.ReadSeString(freeCompanyPtr),
|
||||
isTitleVisible,
|
||||
isTitleAboveName,
|
||||
iconId);
|
||||
|
||||
var beforeNameHashCode = playerNameplateOpenedArgs.Name.GetHashCode();
|
||||
var beforeTitleHashCode = playerNameplateOpenedArgs.Title.GetHashCode();
|
||||
var beforeFreeCompanyHashCode = playerNameplateOpenedArgs.FreeCompany.GetHashCode();
|
||||
var beforeNameHashCode = playerNameplateUpdatedArgs.Name.GetHashCode();
|
||||
var beforeTitleHashCode = playerNameplateUpdatedArgs.Title.GetHashCode();
|
||||
var beforeFreeCompanyHashCode = playerNameplateUpdatedArgs.FreeCompany.GetHashCode();
|
||||
|
||||
PlayerNameplateUpdated?.Invoke(playerNameplateOpenedArgs);
|
||||
PlayerNameplateUpdated?.Invoke(playerNameplateUpdatedArgs);
|
||||
|
||||
IntPtr newNamePtr = namePtr;
|
||||
bool hasNameChanged = beforeNameHashCode != playerNameplateOpenedArgs.Name.GetHashCode();
|
||||
bool hasNameChanged = beforeNameHashCode != playerNameplateUpdatedArgs.Name.GetHashCode();
|
||||
if (hasNameChanged)
|
||||
{
|
||||
newNamePtr = Helper.Allocate(playerNameplateOpenedArgs.Name);
|
||||
newNamePtr = GameInterfaceHelper.Allocate(playerNameplateUpdatedArgs.Name);
|
||||
}
|
||||
|
||||
IntPtr newTitlePtr = titlePtr;
|
||||
bool hasTitleChanged = beforeTitleHashCode != playerNameplateOpenedArgs.Title.GetHashCode();
|
||||
bool hasTitleChanged = beforeTitleHashCode != playerNameplateUpdatedArgs.Title.GetHashCode();
|
||||
if (hasTitleChanged)
|
||||
{
|
||||
newTitlePtr = Helper.Allocate(playerNameplateOpenedArgs.Title);
|
||||
newTitlePtr = GameInterfaceHelper.Allocate(playerNameplateUpdatedArgs.Title);
|
||||
}
|
||||
|
||||
IntPtr newFreeCompanyPtr = freeCompanyPtr;
|
||||
bool hasFreeCompanyChanged = beforeFreeCompanyHashCode != playerNameplateOpenedArgs.FreeCompany.GetHashCode();
|
||||
bool hasFreeCompanyChanged = beforeFreeCompanyHashCode != playerNameplateUpdatedArgs.FreeCompany.GetHashCode();
|
||||
if (hasFreeCompanyChanged)
|
||||
{
|
||||
newFreeCompanyPtr = Helper.Allocate(playerNameplateOpenedArgs.FreeCompany);
|
||||
newFreeCompanyPtr = GameInterfaceHelper.Allocate(playerNameplateUpdatedArgs.FreeCompany);
|
||||
}
|
||||
|
||||
var result = m_SetPlayerNameplateHook.Original(playerNameplateObjectPtr, isTitleAboveName, isTitleVisible, newNamePtr, newTitlePtr, newFreeCompanyPtr, iconId);
|
||||
var result = m_SetPlayerNameplateHook.Original(playerNameplateObjectPtr, playerNameplateUpdatedArgs.IsTitleAboveName, playerNameplateUpdatedArgs.IsTitleVisible, newNamePtr, newTitlePtr, newFreeCompanyPtr, playerNameplateUpdatedArgs.IconId);
|
||||
|
||||
if (hasNameChanged)
|
||||
{
|
||||
Helper.Free(ref newNamePtr);
|
||||
GameInterfaceHelper.Free(ref newNamePtr);
|
||||
}
|
||||
|
||||
if (hasTitleChanged)
|
||||
{
|
||||
Helper.Free(ref newTitlePtr);
|
||||
GameInterfaceHelper.Free(ref newTitlePtr);
|
||||
}
|
||||
|
||||
if (hasFreeCompanyChanged)
|
||||
{
|
||||
Helper.Free(ref newFreeCompanyPtr);
|
||||
GameInterfaceHelper.Free(ref newFreeCompanyPtr);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user