From b658743e9444bded081c751df6175c1b7990b3a9 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 10 Mar 2026 22:27:04 -0700 Subject: [PATCH] feat: highlight required level in item tooltips when player is under-level Display 'Requires Level N' in red when the player does not meet the item's level requirement, and in normal colour when they do. Applies to both equipped-item and bag-item tooltip paths. --- src/ui/inventory_screen.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ui/inventory_screen.cpp b/src/ui/inventory_screen.cpp index b9cf88ef..11f825ed 100644 --- a/src/ui/inventory_screen.cpp +++ b/src/ui/inventory_screen.cpp @@ -1880,7 +1880,10 @@ void InventoryScreen::renderItemTooltip(const game::ItemDef& item, const game::I } if (item.requiredLevel > 1) { - ImGui::TextColored(ImVec4(1.0f, 0.5f, 0.5f, 1.0f), "Requires Level %u", item.requiredLevel); + uint32_t playerLvl = gameHandler_ ? gameHandler_->getPlayerLevel() : 0; + bool meetsReq = (playerLvl >= item.requiredLevel); + ImVec4 reqColor = meetsReq ? ImVec4(1.0f, 1.0f, 1.0f, 0.75f) : ImVec4(1.0f, 0.5f, 0.5f, 1.0f); + ImGui::TextColored(reqColor, "Requires Level %u", item.requiredLevel); } if (item.maxDurability > 0) { float durPct = static_cast(item.curDurability) / static_cast(item.maxDurability); @@ -2149,7 +2152,10 @@ void InventoryScreen::renderItemTooltip(const game::ItemQueryResponseData& info) } if (info.requiredLevel > 1) { - ImGui::TextColored(ImVec4(1.0f, 0.5f, 0.5f, 1.0f), "Requires Level %u", info.requiredLevel); + uint32_t playerLvl = gameHandler_ ? gameHandler_->getPlayerLevel() : 0; + bool meetsReq = (playerLvl >= info.requiredLevel); + ImVec4 reqColor = meetsReq ? ImVec4(1.0f, 1.0f, 1.0f, 0.75f) : ImVec4(1.0f, 0.5f, 0.5f, 1.0f); + ImGui::TextColored(reqColor, "Requires Level %u", info.requiredLevel); } // Spell effects