From 12fa14e1c6a6806f1975fd820e214ae81799adc3 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Thu, 4 Apr 2024 18:17:35 +0200 Subject: [PATCH] Fix some issues with self-named items. --- Glamourer/Gui/Equipment/ItemCombo.cs | 7 ++----- Glamourer/Services/ItemManager.cs | 18 +++++++++++------- Penumbra.GameData | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Glamourer/Gui/Equipment/ItemCombo.cs b/Glamourer/Gui/Equipment/ItemCombo.cs index 24ff582..7e298c0 100644 --- a/Glamourer/Gui/Equipment/ItemCombo.cs +++ b/Glamourer/Gui/Equipment/ItemCombo.cs @@ -105,14 +105,11 @@ public sealed class ItemCombo : FilterComboCache }; } - private static IReadOnlyList GetItems(FavoriteManager favorites, ItemManager items, EquipSlot slot) + private static List GetItems(FavoriteManager favorites, ItemManager items, EquipSlot slot) { var nothing = ItemManager.NothingItem(slot); if (!items.ItemData.ByType.TryGetValue(slot.ToEquipType(), out var list)) - return new[] - { - nothing, - }; + return [nothing]; var enumerable = list.AsEnumerable(); if (slot.IsEquipment()) diff --git a/Glamourer/Services/ItemManager.cs b/Glamourer/Services/ItemManager.cs index e382573..1fc7077 100644 --- a/Glamourer/Services/ItemManager.cs +++ b/Glamourer/Services/ItemManager.cs @@ -66,12 +66,17 @@ public class ItemManager return SmallClothesItem(slot); if (!itemId.IsItem || !ItemData.TryGetValue(itemId.Item, slot, out var item)) - return EquipItem.FromId(itemId); + { + item = EquipItem.FromId(itemId); + item = slot is EquipSlot.MainHand or EquipSlot.OffHand + ? Identify(slot, item.PrimaryId, item.SecondaryId, item.Variant) + : Identify(slot, item.PrimaryId, item.Variant); + return item; + } if (item.Type.ToSlot() != slot) - return new EquipItem(string.Intern($"Invalid #{itemId}"), itemId, item.IconId, item.PrimaryId, item.SecondaryId, item.Variant, 0, 0, - 0, - 0); + return new EquipItem(string.Intern($"Invalid #{itemId}"), itemId, item.IconId, item.PrimaryId, item.SecondaryId, item.Variant, + 0, 0, 0, 0); return item; } @@ -86,9 +91,8 @@ public class ItemManager return EquipItem.FromId(itemId); if (item.Type != type) - return new EquipItem(string.Intern($"Invalid #{itemId}"), itemId, item.IconId, item.PrimaryId, item.SecondaryId, item.Variant, 0, 0, - 0, - 0); + return new EquipItem(string.Intern($"Invalid #{itemId}"), itemId, item.IconId, item.PrimaryId, item.SecondaryId, item.Variant, + 0, 0, 0, 0); return item; } diff --git a/Penumbra.GameData b/Penumbra.GameData index 04237f8..e48a824 160000 --- a/Penumbra.GameData +++ b/Penumbra.GameData @@ -1 +1 @@ -Subproject commit 04237f8e80e2277ea99701bd240a09fcffe4db97 +Subproject commit e48a82471dc1bc7d6a2c39daa71a9d3c9a55ad03