Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ffbdd0b51 | |||
| 280004bdb0 |
+3
-3
@@ -9,9 +9,9 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<AssemblyName>HSUI</AssemblyName>
|
||||
<AssemblyVersion>1.0.8.7</AssemblyVersion>
|
||||
<FileVersion>1.0.8.7</FileVersion>
|
||||
<InformationalVersion>1.0.8.7</InformationalVersion>
|
||||
<AssemblyVersion>1.0.8.9</AssemblyVersion>
|
||||
<FileVersion>1.0.8.9</FileVersion>
|
||||
<InformationalVersion>1.0.8.9</InformationalVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"Author": "Knack117",
|
||||
"Name": "HSUI",
|
||||
"InternalName": "HSUI",
|
||||
"AssemblyVersion": "1.0.8.7",
|
||||
"AssemblyVersion": "1.0.8.9",
|
||||
"Description": "HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.",
|
||||
"ApplicableVersion": "any",
|
||||
"RepoUrl": "https://github.com/Knack117/HSUI",
|
||||
|
||||
@@ -116,21 +116,35 @@ namespace HSUI.Helpers
|
||||
continue;
|
||||
}
|
||||
|
||||
if (slot->IsEmpty)
|
||||
// GearSet with id 0 is valid (first gearset); the game's IsEmpty (CommandId == 0) would wrongly treat it as empty.
|
||||
bool isEmpty = slot->IsEmpty && slot->CommandType != RaptureHotbarModule.HotbarSlotType.GearSet;
|
||||
if (isEmpty)
|
||||
{
|
||||
list.Add(new SlotInfo(0, true, false, 0, 0, 0, 0, keybind, 0, 0));
|
||||
continue;
|
||||
}
|
||||
|
||||
// Populate IconId from ApparentSlotType/ApparentActionId. Required for GearSet and other
|
||||
// dynamic types: the game derives the job icon from the gearset (e.g. first equipment slot).
|
||||
// Without this, when the first gear slot changes the cached IconId can be 0 and the bar shows a blank.
|
||||
slot->LoadIconId();
|
||||
// Use CommandType/CommandId for GearSet so we handle gearset 0 and slots not yet synced to Apparent*.
|
||||
var slotType = slot->CommandType == RaptureHotbarModule.HotbarSlotType.GearSet
|
||||
? RaptureHotbarModule.HotbarSlotType.GearSet
|
||||
: slot->ApparentSlotType;
|
||||
uint actionId = slot->CommandType == RaptureHotbarModule.HotbarSlotType.GearSet
|
||||
? slot->CommandId
|
||||
: slot->ApparentActionId;
|
||||
|
||||
bool usable = slot->IsSlotUsable(slot->ApparentSlotType, slot->ApparentActionId);
|
||||
// For GearSet slots, refresh IconId from the gearset (e.g. job icon from first equipment slot).
|
||||
if (slotType == RaptureHotbarModule.HotbarSlotType.GearSet)
|
||||
slot->LoadIconId();
|
||||
|
||||
bool usable = slot->IsSlotUsable(slotType, actionId);
|
||||
uint iconId = slot->IconId;
|
||||
uint actionId = slot->ApparentActionId;
|
||||
var slotType = slot->ApparentSlotType;
|
||||
// GearSet 0 or just-dropped: game may not have synced Apparent* so IconId can be 0; resolve for display.
|
||||
if (slotType == RaptureHotbarModule.HotbarSlotType.GearSet && iconId == 0)
|
||||
{
|
||||
int resolved = slot->GetIconIdForSlot(slotType, actionId);
|
||||
if (resolved > 0)
|
||||
iconId = (uint)resolved;
|
||||
}
|
||||
|
||||
(int pct, int secsLeft) = GetSlotCooldown(slot);
|
||||
(int currentCharges, int maxCharges) = GetSlotCharges(slotType, actionId);
|
||||
|
||||
@@ -602,7 +602,7 @@ namespace HSUI.Interface.GeneralElements
|
||||
if (ImGui.IsMouseReleased(ImGuiMouseButton.Left))
|
||||
{
|
||||
int releaseIdx = GetSlotIndexAtPosition(topLeft, barSize, slotSize, pad, Config.SlotCount, Config.GetLayoutGrid().Cols, mp, debug);
|
||||
if (releaseIdx >= 0 && slotType != RaptureHotbarModule.HotbarSlotType.Empty && (id != 0 || slotType == RaptureHotbarModule.HotbarSlotType.Macro))
|
||||
if (releaseIdx >= 0 && slotType != RaptureHotbarModule.HotbarSlotType.Empty && (id != 0 || slotType == RaptureHotbarModule.HotbarSlotType.Macro || slotType == RaptureHotbarModule.HotbarSlotType.GearSet))
|
||||
{
|
||||
if (!ImGui.GetIO().KeyShift)
|
||||
{
|
||||
@@ -701,7 +701,7 @@ namespace HSUI.Interface.GeneralElements
|
||||
// stale (e.g. from macro menu UI), causing wrong placements (macro drag -> GeneralAction placed).
|
||||
// If we never got valid payload (e.g. Macro Int2=0), skip the place.
|
||||
bool hasValidPayload = slotType != RaptureHotbarModule.HotbarSlotType.Empty &&
|
||||
(id != 0 || slotType == RaptureHotbarModule.HotbarSlotType.Macro);
|
||||
(id != 0 || slotType == RaptureHotbarModule.HotbarSlotType.Macro || slotType == RaptureHotbarModule.HotbarSlotType.GearSet);
|
||||
|
||||
if (hasValidPayload)
|
||||
{
|
||||
@@ -1092,7 +1092,9 @@ namespace HSUI.Interface.GeneralElements
|
||||
|
||||
private static unsafe uint GetIconIdForPayload(RaptureHotbarModule.HotbarSlotType slotType, uint id)
|
||||
{
|
||||
if (id == 0) return 0;
|
||||
// id 0 is valid for GearSet (first gearset in list) and Macro; don't short-circuit for those
|
||||
if (id == 0 && slotType != RaptureHotbarModule.HotbarSlotType.GearSet && slotType != RaptureHotbarModule.HotbarSlotType.Macro)
|
||||
return 0;
|
||||
if (slotType == RaptureHotbarModule.HotbarSlotType.Macro)
|
||||
{
|
||||
var macroModule = RaptureMacroModule.Instance();
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
# 1.0.8.9
|
||||
- **Hotbars**: Gearset on slot now persists — do not treat slot as empty when CommandType is GearSet (gearset index 0 uses CommandId 0). Use CommandType/CommandId for GearSet display and resolve icon when IconId is still 0.
|
||||
|
||||
# 1.0.8.8
|
||||
- **Hotbars**: Only refresh icon via LoadIconId() for GearSet slots so drag-and-drop of gearsets onto the bar works again.
|
||||
- **Hotbars**: Allow gearset index 0 (top-most gearset in list) — drop validation and icon lookup now accept id 0 for GearSet type.
|
||||
|
||||
# 1.0.8.7
|
||||
- **Hotbars**: Fixed Gearset/Job Gear Set icon clearing when the first equipment slot in the gearset changes — call LoadIconId() before reading slot IconId so the game populates the icon from the gearset (e.g. job icon).
|
||||
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
[{"Author":"Knack117","Name":"HSUI","Punchline":"A modern HUD replacement built for customization.","Description":"HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.","Changelog":"1.0.8.7: Fixed Gearset/Job Gear Set icon clearing when first equipment slot changes. 1.0.8.6: Crafting action tooltips now show full description instead of action name. 1.0.8.4: Alliance Frames 1 and 2 fix in raids; crafting action tooltips; Hide in duty no longer hides alliance frames. 1.0.8.3: Fix left-click staying broken after disable. 1.0.8.2: Charge icons stay lit until all charges spent.","InternalName":"HSUI","AssemblyVersion":"1.0.8.7","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI","ApplicableVersion":"any","Tags":["UI","HUD","Unit Frames","Nameplates","Party Frames","Hotbars"],"CategoryTags":["UI"],"DalamudApiLevel":14,"IconUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/raw/branch/main/Media/Images/icon.png","ImageUrls":[],"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.7/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.7/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.7/latest.zip","LastUpdate":"1739145600"}]
|
||||
[{"Author":"Knack117","Name":"HSUI","Punchline":"A modern HUD replacement built for customization.","Description":"HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.","Changelog":"1.0.8.9: Gearset persists on slot (fix CommandId 0 treated as empty). 1.0.8.8: Gearset drag-drop fix; allow first gearset (index 0) on bar. 1.0.8.7: Fixed Gearset/Job Gear Set icon clearing when first equipment slot changes. 1.0.8.6: Crafting action tooltips now show full description instead of action name. 1.0.8.4: Alliance Frames 1 and 2 fix in raids; crafting action tooltips; Hide in duty no longer hides alliance frames. 1.0.8.3: Fix left-click staying broken after disable. 1.0.8.2: Charge icons stay lit until all charges spent.","InternalName":"HSUI","AssemblyVersion":"1.0.8.9","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI","ApplicableVersion":"any","Tags":["UI","HUD","Unit Frames","Nameplates","Party Frames","Hotbars"],"CategoryTags":["UI"],"DalamudApiLevel":14,"IconUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/raw/branch/main/Media/Images/icon.png","ImageUrls":[],"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.9/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.9/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.9/latest.zip","LastUpdate":"1739318400"}]
|
||||
|
||||
Reference in New Issue
Block a user