Fix some bonus item related things.

This commit is contained in:
Ottermandias 2024-10-13 14:40:37 +02:00
parent 530166b81a
commit 87d8876972
4 changed files with 17 additions and 6 deletions

View file

@ -112,7 +112,7 @@ public unsafe struct DesignData
=> slot switch
{
// @formatter:off
BonusItemFlag.Glasses => EquipItem.FromIds(_bonusIds[0], _iconIds[12], _bonusModelIds[0], 0, _bonusVariants[0], FullEquipType.Glasses, 0, _nameGlasses),
BonusItemFlag.Glasses => EquipItem.FromBonusIds(_bonusIds[0], _iconIds[12], _bonusModelIds[0], _bonusVariants[0], BonusItemFlag.Glasses, _nameGlasses),
_ => EquipItem.BonusItemNothing(slot),
// @formatter:on
};

View file

@ -9,7 +9,6 @@ using OtterGui;
using OtterGui.Raii;
using Penumbra.GameData.Enums;
using Penumbra.GameData.Gui.Debug;
using FFXIVClientStructs.FFXIV.Shader;
namespace Glamourer.Gui.Tabs.DebugTab;
@ -67,7 +66,13 @@ public class ActiveStatePanel(StateManager _stateManager, ObjectManager _objectM
static string ItemString(in DesignData data, EquipSlot slot)
{
var item = data.Item(slot);
return $"{item.Name} ({item.PrimaryId.Id}{(item.SecondaryId != 0 ? $"-{item.SecondaryId.Id}" : string.Empty)}-{item.Variant})";
return $"{item.Name} ({item.Id.ToDiscriminatingString()} {item.PrimaryId.Id}{(item.SecondaryId != 0 ? $"-{item.SecondaryId.Id}" : string.Empty)}-{item.Variant})";
}
static string BonusItemString(in DesignData data, BonusItemFlag slot)
{
var item = data.BonusItem(slot);
return $"{item.Name} ({item.Id.ToDiscriminatingString()} {item.PrimaryId.Id}{(item.SecondaryId != 0 ? $"-{item.SecondaryId.Id}" : string.Empty)}-{item.Variant})";
}
PrintRow("Model ID", state.BaseData.ModelId, state.ModelData.ModelId, state.Sources[MetaIndex.ModelId]);
@ -93,6 +98,12 @@ public class ActiveStatePanel(StateManager _stateManager, ObjectManager _objectM
ImGuiUtil.DrawTableColumn(state.Sources[slot, true].ToString());
}
foreach (var slot in BonusExtensions.AllFlags)
{
PrintRow(slot.ToName(), BonusItemString(state.BaseData, slot), BonusItemString(state.ModelData, slot), state.Sources[slot]);
ImGui.TableNextRow();
}
foreach (var type in Enum.GetValues<CustomizeIndex>())
{
PrintRow(type.ToDefaultName(), state.BaseData.Customize[type].Value, state.ModelData.Customize[type].Value,

View file

@ -142,7 +142,7 @@ public class ItemManager
public EquipItem Resolve(BonusItemFlag slot, CustomItemId id)
{
// Only from early designs as migration.
if (!id.IsBonusItem)
if (!id.IsBonusItem || id.Id == 0)
{
IsBonusItemValid(slot, (BonusItemId)id.Id, out var item);
return item;
@ -207,7 +207,7 @@ public class ItemManager
if (itemId.Id != 0)
return DictBonusItems.TryGetValue(itemId, out item) && slot == item.Type.ToBonus();
item = new EquipItem(Nothing, (BonusItemId)0, 0, 0, 0, 0, slot.ToEquipType(), 0, 0, 0);
item = EquipItem.BonusItemNothing(slot);
return true;
}

@ -1 +1 @@
Subproject commit 63cbf824178b5b1f91fd9edc22a6c2bbc2e1cd23
Subproject commit 554e28a3d1fca9394a20fd9856f6387e2a5e4a57