diff --git a/Dalamud/Game/ItemActionType.cs b/Dalamud/Game/ItemActionType.cs deleted file mode 100644 index 3f2ac5f17..000000000 --- a/Dalamud/Game/ItemActionType.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Lumina.Excel.Sheets; - -namespace Dalamud.Game; - -/// -/// Enum for . -/// -public enum ItemActionType : ushort -{ - /// - /// Used to unlock a companion (minion). - /// - Companion = 853, - - /// - /// Used to unlock a chocobo companion barding. - /// - BuddyEquip = 1013, - - /// - /// Used to unlock a mount. - /// - Mount = 1322, - - /// - /// Used to unlock recipes from a crafting recipe book. - /// - SecretRecipeBook = 2136, - - /// - /// Used to unlock various types of content (e.g. Riding Maps, Blue Mage Totems, Emotes, Hairstyles). - /// - UnlockLink = 2633, - - /// - /// Used to unlock a Triple Triad Card. - /// - TripleTriadCard = 3357, - - /// - /// Used to unlock gathering nodes of a Folklore Tome. - /// - FolkloreTome = 4107, - - /// - /// Used to unlock an Orchestrion Roll. - /// - OrchestrionRoll = 25183, - - /// - /// Used to unlock portrait designs. - /// - FramersKit = 29459, - - /// - /// Used to unlock Bozjan Field Notes. These are server-side but are cached client-side. - /// - FieldNotes = 19743, - - /// - /// Used to unlock an Ornament (fashion accessory). - /// - Ornament = 20086, - - /// - /// Used to unlock glasses. - /// - Glasses = 37312, - - /// - /// Used for Company Seal Vouchers, which convert the item into Company Seals when used.
- /// Can be used only if in a Grand Company.
- /// IsUnlocked always returns false. - ///
- CompanySealVouchers = 41120, -} diff --git a/Dalamud/Game/UnlockState/ItemActionType.cs b/Dalamud/Game/UnlockState/ItemActionType.cs new file mode 100644 index 000000000..741dcd31b --- /dev/null +++ b/Dalamud/Game/UnlockState/ItemActionType.cs @@ -0,0 +1,97 @@ +using Lumina.Excel.Sheets; + +namespace Dalamud.Game.UnlockState; + +// TODO: Switch to FFXIVClientStructs.FFXIV.Client.Enums.ItemActionType. + +/// +/// Enum for . +/// +internal enum ItemActionType : ushort +{ + /// + /// No item action. + /// + None = 0, + + /// + /// Unlocks a companion (minion). + /// + Companion = 853, + + /// + /// Unlocks a chocobo companion barding. + /// + BuddyEquip = 1013, + + /// + /// Unlocks a mount. + /// + Mount = 1322, + + /// + /// Unlocks recipes from a crafting recipe book. + /// + SecretRecipeBook = 2136, + + /// + /// Unlocks various types of content (e.g. Riding Maps, Blue Mage Totems, Emotes, Hairstyles). + /// + UnlockLink = 2633, + + /// + /// Unlocks a Triple Triad Card. + /// + TripleTriadCard = 3357, + + /// + /// Unlocks gathering nodes of a Folklore Tome. + /// + FolkloreTome = 4107, + + /// + /// Unlocks an Orchestrion Roll. + /// + OrchestrionRoll = 25183, + + /// + /// Unlocks portrait designs. + /// + FramersKit = 29459, + + /// + /// Unlocks Bozjan Field Notes. + /// + /// These are server-side but are cached client-side. + FieldNotes = 19743, + + /// + /// Unlocks an Ornament (fashion accessory). + /// + Ornament = 20086, + + /// + /// Unlocks Glasses. + /// + Glasses = 37312, + + /// + /// Company Seal Vouchers, which convert the item into Company Seals when used. + /// + CompanySealVouchers = 41120, + + /// + /// Unlocks Occult Records in Occult Crescent. + /// + OccultRecords = 43141, + + /// + /// Unlocks Phantom Jobs in Occult Crescent. + /// + SoulShards = 43142, + + /// + /// Star Contributor Certificate, which grants the Star Contributor status in Cosmic Exploration. + /// + StarContributorCertificate = 45189, +} diff --git a/Dalamud/Game/UnlockState/UnlockState.cs b/Dalamud/Game/UnlockState/UnlockState.cs index ae8fc4f86..e2528c7e7 100644 --- a/Dalamud/Game/UnlockState/UnlockState.cs +++ b/Dalamud/Game/UnlockState/UnlockState.cs @@ -263,6 +263,7 @@ internal unsafe class UnlockState : IInternalDisposableService, IUnlockState return PlayerState.Instance()->IsSecretRecipeBookUnlocked(row.ItemAction.Value.Data[0]); case ItemActionType.UnlockLink: + case ItemActionType.OccultRecords: return UIState.Instance()->IsUnlockLinkUnlocked(row.ItemAction.Value.Data[0]); case ItemActionType.TripleTriadCard when row.AdditionalData.Is(): @@ -387,18 +388,19 @@ internal unsafe class UnlockState : IInternalDisposableService, IUnlockState if (row.ItemAction.RowId == 0) return false; - return (ItemActionType)row.ItemAction.Value.Type is - ItemActionType.Companion or - ItemActionType.BuddyEquip or - ItemActionType.Mount or - ItemActionType.SecretRecipeBook or - ItemActionType.UnlockLink or - ItemActionType.TripleTriadCard or - ItemActionType.FolkloreTome or - ItemActionType.OrchestrionRoll or - ItemActionType.FramersKit or - ItemActionType.Ornament or - ItemActionType.Glasses; + return (ItemActionType)row.ItemAction.Value.Type + is ItemActionType.Companion + or ItemActionType.BuddyEquip + or ItemActionType.Mount + or ItemActionType.SecretRecipeBook + or ItemActionType.UnlockLink + or ItemActionType.TripleTriadCard + or ItemActionType.FolkloreTome + or ItemActionType.OrchestrionRoll + or ItemActionType.FramersKit + or ItemActionType.Ornament + or ItemActionType.Glasses + or ItemActionType.OccultRecords; } ///