diff --git a/Dalamud/Game/ClientState/Conditions/Condition.cs b/Dalamud/Game/ClientState/Conditions/Condition.cs index 99748f71b..6f61ab246 100644 --- a/Dalamud/Game/ClientState/Conditions/Condition.cs +++ b/Dalamud/Game/ClientState/Conditions/Condition.cs @@ -18,7 +18,7 @@ internal sealed class Condition : IInternalDisposableService, ICondition /// /// Gets the current max number of conditions. You can get this just by looking at the condition sheet and how many rows it has. /// - internal const int MaxConditionEntries = 104; + internal const int MaxConditionEntries = 112; [ServiceManager.ServiceDependency] private readonly Framework framework = Service.Get(); diff --git a/Dalamud/Game/ClientState/Conditions/ConditionFlag.cs b/Dalamud/Game/ClientState/Conditions/ConditionFlag.cs index 19451dd5c..b5894d891 100644 --- a/Dalamud/Game/ClientState/Conditions/ConditionFlag.cs +++ b/Dalamud/Game/ClientState/Conditions/ConditionFlag.cs @@ -520,4 +520,17 @@ public enum ConditionFlag PilotingMech = 102, // Unknown103 = 103, + + /// + /// Unable to execute command while editing a strategy board. + /// + EditingStrategyBoard = 104, + + // Unknown105 = 105, + // Unknown106 = 106, + // Unknown107 = 107, + // Unknown108 = 108, + // Unknown109 = 109, + // Unknown110 = 110, + // Unknown111 = 111, } diff --git a/Dalamud/Game/Gui/ContextMenu/ContextMenu.cs b/Dalamud/Game/Gui/ContextMenu/ContextMenu.cs index 7512f4160..aada374ec 100644 --- a/Dalamud/Game/Gui/ContextMenu/ContextMenu.cs +++ b/Dalamud/Game/Gui/ContextMenu/ContextMenu.cs @@ -31,7 +31,7 @@ internal sealed unsafe class ContextMenu : IInternalDisposableService, IContextM private static readonly ModuleLog Log = new("ContextMenu"); private readonly Hook atkModuleVf22OpenAddonByAgentHook; - private readonly Hook addonContextMenuOnMenuSelectedHook; + private readonly Hook addonContextMenuOnMenuSelectedHook; private uint? addonContextSubNameId; @@ -40,7 +40,7 @@ internal sealed unsafe class ContextMenu : IInternalDisposableService, IContextM { var raptureAtkModuleVtable = (nint*)RaptureAtkModule.StaticVirtualTablePointer; this.atkModuleVf22OpenAddonByAgentHook = Hook.FromAddress(raptureAtkModuleVtable[22], this.AtkModuleVf22OpenAddonByAgentDetour); - this.addonContextMenuOnMenuSelectedHook = Hook.FromAddress((nint)AddonContextMenu.StaticVirtualTablePointer->OnMenuSelected, this.AddonContextMenuOnMenuSelectedDetour); + this.addonContextMenuOnMenuSelectedHook = Hook.FromAddress((nint)AddonContextMenu.StaticVirtualTablePointer->OnMenuSelected, this.AddonContextMenuOnMenuSelectedDetour); this.atkModuleVf22OpenAddonByAgentHook.Enable(); this.addonContextMenuOnMenuSelectedHook.Enable(); @@ -48,10 +48,6 @@ internal sealed unsafe class ContextMenu : IInternalDisposableService, IContextM private delegate ushort AtkModuleVf22OpenAddonByAgentDelegate(AtkModule* module, byte* addonName, int valueCount, AtkValue* values, AgentInterface* agent, nint a7, bool a8); - private delegate bool AddonContextMenuOnMenuSelectedDelegate(AddonContextMenu* addon, int selectedIdx, byte a3); - - private delegate ushort RaptureAtkModuleOpenAddonDelegate(RaptureAtkModule* a1, uint addonNameId, uint valueCount, AtkValue* values, AgentInterface* parentAgent, ulong unk, ushort parentAddonId, int unk2); - /// public event IContextMenu.OnMenuOpenedDelegate? OnMenuOpened; @@ -185,7 +181,7 @@ internal sealed unsafe class ContextMenu : IInternalDisposableService, IContextM values[0].ChangeType(ValueType.UInt); values[0].UInt = 0; values[1].ChangeType(ValueType.String); - values[1].SetManagedString(name.Encode().NullTerminate()); + values[1].SetManagedString(name.EncodeWithNullTerminator()); values[2].ChangeType(ValueType.Int); values[2].Int = x; values[3].ChangeType(ValueType.Int); @@ -265,7 +261,7 @@ internal sealed unsafe class ContextMenu : IInternalDisposableService, IContextM submenuMask |= 1u << i; nameData[i].ChangeType(ValueType.String); - nameData[i].SetManagedString(this.GetPrefixedName(item).Encode().NullTerminate()); + nameData[i].SetManagedString(this.GetPrefixedName(item).EncodeWithNullTerminator()); } for (var i = 0; i < prefixMenuSize; ++i) @@ -295,8 +291,9 @@ internal sealed unsafe class ContextMenu : IInternalDisposableService, IContextM // 2: UInt = Return Mask (?) // 3: UInt = Submenu Mask // 4: UInt = OpenAtCursorPosition ? 2 : 1 - // 5: UInt = 0 - // 6: UInt = 0 + // 5: UInt = ? + // 6: UInt = ? + // 7: UInt = ? foreach (var item in items) { @@ -312,7 +309,7 @@ internal sealed unsafe class ContextMenu : IInternalDisposableService, IContextM } } - this.SetupGenericMenu(7, 0, 2, 3, items, ref valueCount, ref values); + this.SetupGenericMenu(8, 0, 2, 3, items, ref valueCount, ref values); } private void SetupContextSubMenu(IReadOnlyList items, ref int valueCount, ref AtkValue* values) diff --git a/Dalamud/Game/Gui/HoverActionKind.cs b/Dalamud/Game/Gui/HoverActionKind.cs index ef8fe6400..b786f12ee 100644 --- a/Dalamud/Game/Gui/HoverActionKind.cs +++ b/Dalamud/Game/Gui/HoverActionKind.cs @@ -14,140 +14,145 @@ public enum HoverActionKind /// /// A regular action is hovered. /// - Action = 28, + Action = 29, /// /// A crafting action is hovered. /// - CraftingAction = 29, + CraftingAction = 30, /// /// A general action is hovered. /// - GeneralAction = 30, + GeneralAction = 31, /// /// A companion order type of action is hovered. /// - CompanionOrder = 31, // Game Term: BuddyOrder + CompanionOrder = 32, // Game Term: BuddyOrder /// /// A main command type of action is hovered. /// - MainCommand = 32, + MainCommand = 33, /// /// An extras command type of action is hovered. /// - ExtraCommand = 33, + ExtraCommand = 34, /// /// A companion action is hovered. /// - Companion = 34, + Companion = 35, /// /// A pet order type of action is hovered. /// - PetOrder = 35, + PetOrder = 36, /// /// A trait is hovered. /// - Trait = 36, + Trait = 37, /// /// A buddy action is hovered. /// - BuddyAction = 37, + BuddyAction = 38, /// /// A company action is hovered. /// - CompanyAction = 38, + CompanyAction = 39, /// /// A mount is hovered. /// - Mount = 39, + Mount = 40, /// /// A chocobo race action is hovered. /// - ChocoboRaceAction = 40, + ChocoboRaceAction = 41, /// /// A chocobo race item is hovered. /// - ChocoboRaceItem = 41, + ChocoboRaceItem = 42, /// /// A deep dungeon equipment is hovered. /// - DeepDungeonEquipment = 42, + DeepDungeonEquipment = 43, /// /// A deep dungeon equipment 2 is hovered. /// - DeepDungeonEquipment2 = 43, + DeepDungeonEquipment2 = 44, /// /// A deep dungeon item is hovered. /// - DeepDungeonItem = 44, + DeepDungeonItem = 45, /// /// A quick chat is hovered. /// - QuickChat = 45, + QuickChat = 46, /// /// An action combo route is hovered. /// - ActionComboRoute = 46, + ActionComboRoute = 47, /// /// A pvp trait is hovered. /// - PvPSelectTrait = 47, + PvPSelectTrait = 48, /// /// A squadron action is hovered. /// - BgcArmyAction = 48, + BgcArmyAction = 49, /// /// A perform action is hovered. /// - Perform = 49, + Perform = 50, /// /// A deep dungeon magic stone is hovered. /// - DeepDungeonMagicStone = 50, + DeepDungeonMagicStone = 51, /// /// A deep dungeon demiclone is hovered. /// - DeepDungeonDemiclone = 51, + DeepDungeonDemiclone = 52, /// /// An eureka magia action is hovered. /// - EurekaMagiaAction = 52, + EurekaMagiaAction = 53, /// /// An island sanctuary temporary item is hovered. /// - MYCTemporaryItem = 53, + MYCTemporaryItem = 54, /// /// An ornament is hovered. /// - Ornament = 54, + Ornament = 55, /// /// Glasses are hovered. /// - Glasses = 55, + Glasses = 56, + + /// + /// Phantom Job Trait is hovered. + /// + MKDTrait = 58, }