Skip to content

Commit

Permalink
Fix some bonus item related things.
Browse files Browse the repository at this point in the history
Ottermandias committed Oct 13, 2024
1 parent 530166b commit 87d8876
Showing 4 changed files with 17 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Glamourer/Designs/DesignData.cs
Original file line number Diff line number Diff line change
@@ -112,7 +112,7 @@ public readonly EquipItem BonusItem(BonusItemFlag slot)
=> 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
};
15 changes: 13 additions & 2 deletions Glamourer/Gui/Tabs/DebugTab/ActiveStatePanel.cs
Original file line number Diff line number Diff line change
@@ -9,7 +9,6 @@
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 @@ static void PrintRow<T>(string label, T actor, T model, StateSource source) wher
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 @@ static string ItemString(in DesignData data, EquipSlot slot)
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,
4 changes: 2 additions & 2 deletions Glamourer/Services/ItemManager.cs
Original file line number Diff line number Diff line change
@@ -142,7 +142,7 @@ public EquipItem Resolve(BonusItemFlag slot, BonusItemId id)
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 bool IsBonusItemValid(BonusItemFlag slot, BonusItemId itemId, out EquipIt
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;
}

2 changes: 1 addition & 1 deletion Penumbra.GameData

0 comments on commit 87d8876

Please sign in to comment.