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,
}