From bbbc4efced439cd211d48fda6db22f0d7c29c9cf Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 13 Mar 2026 10:22:34 -0700 Subject: [PATCH] feat: add Heirloom and Artifact item quality tiers with light gold color Extends ItemQuality enum with ARTIFACT (6) and HEIRLOOM (7) to match WotLK 3.3.5a quality values, with light gold color (e6cc80) and display name support in inventory UI and tooltips. --- include/game/inventory.hpp | 2 ++ src/game/inventory.cpp | 2 ++ src/ui/inventory_screen.cpp | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/include/game/inventory.hpp b/include/game/inventory.hpp index 7a3bcb8c..ac6af201 100644 --- a/include/game/inventory.hpp +++ b/include/game/inventory.hpp @@ -15,6 +15,8 @@ enum class ItemQuality : uint8_t { RARE = 3, // Blue EPIC = 4, // Purple LEGENDARY = 5, // Orange + ARTIFACT = 6, // Yellow (unused in 3.3.5a but valid quality value) + HEIRLOOM = 7, // Yellow/gold (WotLK bind-on-account heirlooms) }; enum class EquipSlot : uint8_t { diff --git a/src/game/inventory.cpp b/src/game/inventory.cpp index 1750253a..259fb872 100644 --- a/src/game/inventory.cpp +++ b/src/game/inventory.cpp @@ -313,6 +313,8 @@ const char* getQualityName(ItemQuality quality) { case ItemQuality::RARE: return "Rare"; case ItemQuality::EPIC: return "Epic"; case ItemQuality::LEGENDARY: return "Legendary"; + case ItemQuality::ARTIFACT: return "Artifact"; + case ItemQuality::HEIRLOOM: return "Heirloom"; default: return "Unknown"; } } diff --git a/src/ui/inventory_screen.cpp b/src/ui/inventory_screen.cpp index aa6c6c75..23b83d33 100644 --- a/src/ui/inventory_screen.cpp +++ b/src/ui/inventory_screen.cpp @@ -103,6 +103,8 @@ ImVec4 InventoryScreen::getQualityColor(game::ItemQuality quality) { case game::ItemQuality::RARE: return ImVec4(0.0f, 0.44f, 0.87f, 1.0f); // Blue case game::ItemQuality::EPIC: return ImVec4(0.64f, 0.21f, 0.93f, 1.0f); // Purple case game::ItemQuality::LEGENDARY: return ImVec4(1.0f, 0.50f, 0.0f, 1.0f); // Orange + case game::ItemQuality::ARTIFACT: return ImVec4(0.90f, 0.80f, 0.50f, 1.0f); // Light gold + case game::ItemQuality::HEIRLOOM: return ImVec4(0.90f, 0.80f, 0.50f, 1.0f); // Light gold default: return ImVec4(1.0f, 1.0f, 1.0f, 1.0f); } } @@ -2268,6 +2270,8 @@ void InventoryScreen::renderItemSlot(game::Inventory& inventory, const game::Ite case game::ItemQuality::RARE: qualHex = "0070dd"; break; case game::ItemQuality::EPIC: qualHex = "a335ee"; break; case game::ItemQuality::LEGENDARY: qualHex = "ff8000"; break; + case game::ItemQuality::ARTIFACT: qualHex = "e6cc80"; break; + case game::ItemQuality::HEIRLOOM: qualHex = "e6cc80"; break; default: break; } char linkBuf[512];