refactor: add kTooltipGold color constant, replace 14 inline literals

Add colors::kTooltipGold to ui_colors.hpp and replace 14 inline
ImVec4(1.0f, 0.82f, 0.0f, 1.0f) literals in inventory_screen.cpp
for item set names, unique markers, and quest item indicators.
This commit is contained in:
Kelsi 2026-03-25 19:18:54 -07:00
parent 7484ce6c2d
commit 7015e09f90
2 changed files with 16 additions and 15 deletions

View file

@ -15,6 +15,7 @@ namespace colors {
constexpr ImVec4 kDarkGray = {0.5f, 0.5f, 0.5f, 1.0f}; constexpr ImVec4 kDarkGray = {0.5f, 0.5f, 0.5f, 1.0f};
constexpr ImVec4 kLightGray = {0.7f, 0.7f, 0.7f, 1.0f}; constexpr ImVec4 kLightGray = {0.7f, 0.7f, 0.7f, 1.0f};
constexpr ImVec4 kWhite = {1.0f, 1.0f, 1.0f, 1.0f}; constexpr ImVec4 kWhite = {1.0f, 1.0f, 1.0f, 1.0f};
constexpr ImVec4 kTooltipGold = {1.0f, 0.82f, 0.0f, 1.0f};
// Coin colors // Coin colors
constexpr ImVec4 kGold = {1.00f, 0.82f, 0.00f, 1.0f}; constexpr ImVec4 kGold = {1.00f, 0.82f, 0.00f, 1.0f};
@ -95,7 +96,7 @@ inline const char* getInventorySlotName(uint32_t inventoryType) {
// ---- Binding type display ---- // ---- Binding type display ----
inline void renderBindingType(uint32_t bindType) { inline void renderBindingType(uint32_t bindType) {
constexpr ImVec4 kBindColor = {1.0f, 0.82f, 0.0f, 1.0f}; const auto& kBindColor = colors::kTooltipGold;
switch (bindType) { switch (bindType) {
case 1: ImGui::TextColored(kBindColor, "Binds when picked up"); break; case 1: ImGui::TextColored(kBindColor, "Binds when picked up"); break;
case 2: ImGui::TextColored(kBindColor, "Binds when equipped"); break; case 2: ImGui::TextColored(kBindColor, "Binds when equipped"); break;

View file

@ -1344,14 +1344,14 @@ void InventoryScreen::renderCharacterScreen(game::GameHandler& gameHandler) {
// Gold name when maxed out, cyan when buffed above base, default otherwise // Gold name when maxed out, cyan when buffed above base, default otherwise
bool isMaxed = (effective >= skill->maxValue && skill->maxValue > 0); bool isMaxed = (effective >= skill->maxValue && skill->maxValue > 0);
bool isBuffed = (bonus > 0); bool isBuffed = (bonus > 0);
ImVec4 nameColor = isMaxed ? ImVec4(1.0f, 0.82f, 0.0f, 1.0f) ImVec4 nameColor = isMaxed ? ui::colors::kTooltipGold
: isBuffed ? ImVec4(0.4f, 0.9f, 1.0f, 1.0f) : isBuffed ? ImVec4(0.4f, 0.9f, 1.0f, 1.0f)
: ImVec4(0.85f, 0.85f, 0.85f, 1.0f); : ImVec4(0.85f, 0.85f, 0.85f, 1.0f);
ImGui::TextColored(nameColor, "%s", label); ImGui::TextColored(nameColor, "%s", label);
ImGui::SameLine(180.0f); ImGui::SameLine(180.0f);
ImGui::SetNextItemWidth(-1.0f); ImGui::SetNextItemWidth(-1.0f);
// Bar color: gold when maxed, green otherwise // Bar color: gold when maxed, green otherwise
ImVec4 barColor = isMaxed ? ImVec4(1.0f, 0.82f, 0.0f, 1.0f) : ImVec4(0.2f, 0.7f, 0.2f, 1.0f); ImVec4 barColor = isMaxed ? ui::colors::kTooltipGold : ImVec4(0.2f, 0.7f, 0.2f, 1.0f);
ImGui::PushStyleColor(ImGuiCol_PlotHistogram, barColor); ImGui::PushStyleColor(ImGuiCol_PlotHistogram, barColor);
ImGui::ProgressBar(ratio, ImVec2(0, 14.0f), overlay); ImGui::ProgressBar(ratio, ImVec2(0, 14.0f), overlay);
ImGui::PopStyleColor(); ImGui::PopStyleColor();
@ -2554,9 +2554,9 @@ void InventoryScreen::renderItemTooltip(const game::ItemDef& item, const game::I
ImGui::TextColored(ImVec4(0.0f, 0.8f, 0.0f, 1.0f), "Heroic"); ImGui::TextColored(ImVec4(0.0f, 0.8f, 0.0f, 1.0f), "Heroic");
} }
if (qi->maxCount == 1) { if (qi->maxCount == 1) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Unique"); ImGui::TextColored(ui::colors::kTooltipGold, "Unique");
} else if (qi->itemFlags & kFlagUniqueEquipped) { } else if (qi->itemFlags & kFlagUniqueEquipped) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Unique-Equipped"); ImGui::TextColored(ui::colors::kTooltipGold, "Unique-Equipped");
} }
} }
} }
@ -2995,10 +2995,10 @@ void InventoryScreen::renderItemTooltip(const game::ItemDef& item, const game::I
} }
} }
if (total > 0) { if (total > 0) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), ImGui::TextColored(ui::colors::kTooltipGold,
"%s (%d/%d)", se.name.empty() ? "Set" : se.name.c_str(), equipped, total); "%s (%d/%d)", se.name.empty() ? "Set" : se.name.c_str(), equipped, total);
} else if (!se.name.empty()) { } else if (!se.name.empty()) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "%s", se.name.c_str()); ImGui::TextColored(ui::colors::kTooltipGold, "%s", se.name.c_str());
} }
for (int i = 0; i < 10; ++i) { for (int i = 0; i < 10; ++i) {
if (se.spellIds[i] == 0 || se.thresholds[i] == 0) continue; if (se.spellIds[i] == 0 || se.thresholds[i] == 0) continue;
@ -3012,7 +3012,7 @@ void InventoryScreen::renderItemTooltip(const game::ItemDef& item, const game::I
ImGui::TextColored(col, "(%u) Set Bonus", se.thresholds[i]); ImGui::TextColored(col, "(%u) Set Bonus", se.thresholds[i]);
} }
} else { } else {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Set (id %u)", qi2->itemSetId); ImGui::TextColored(ui::colors::kTooltipGold, "Set (id %u)", qi2->itemSetId);
} }
} }
} }
@ -3035,7 +3035,7 @@ void InventoryScreen::renderItemTooltip(const game::ItemDef& item, const game::I
// "Begins a Quest" line (shown in yellow-green like the game) // "Begins a Quest" line (shown in yellow-green like the game)
if (item.startQuestId != 0) { if (item.startQuestId != 0) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Begins a Quest"); ImGui::TextColored(ui::colors::kTooltipGold, "Begins a Quest");
} }
// Flavor / lore text (italic yellow in WoW, just yellow here) // Flavor / lore text (italic yellow in WoW, just yellow here)
@ -3200,9 +3200,9 @@ void InventoryScreen::renderItemTooltip(const game::ItemQueryResponseData& info,
ImGui::TextColored(ImVec4(0.0f, 0.8f, 0.0f, 1.0f), "Heroic"); ImGui::TextColored(ImVec4(0.0f, 0.8f, 0.0f, 1.0f), "Heroic");
} }
if (info.maxCount == 1) { if (info.maxCount == 1) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Unique"); ImGui::TextColored(ui::colors::kTooltipGold, "Unique");
} else if (info.itemFlags & kFlagUniqueEquipped) { } else if (info.itemFlags & kFlagUniqueEquipped) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Unique-Equipped"); ImGui::TextColored(ui::colors::kTooltipGold, "Unique-Equipped");
} }
// Binding type // Binding type
@ -3615,11 +3615,11 @@ void InventoryScreen::renderItemTooltip(const game::ItemQueryResponseData& info,
} }
} }
if (total > 0) { if (total > 0) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), ImGui::TextColored(ui::colors::kTooltipGold,
"%s (%d/%d)", se.name.empty() ? "Set" : se.name.c_str(), equipped, total); "%s (%d/%d)", se.name.empty() ? "Set" : se.name.c_str(), equipped, total);
} else { } else {
if (!se.name.empty()) if (!se.name.empty())
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "%s", se.name.c_str()); ImGui::TextColored(ui::colors::kTooltipGold, "%s", se.name.c_str());
} }
// Show set bonuses: gray if not reached, green if active // Show set bonuses: gray if not reached, green if active
if (gameHandler_) { if (gameHandler_) {
@ -3636,12 +3636,12 @@ void InventoryScreen::renderItemTooltip(const game::ItemQueryResponseData& info,
} }
} }
} else { } else {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Set (id %u)", info.itemSetId); ImGui::TextColored(ui::colors::kTooltipGold, "Set (id %u)", info.itemSetId);
} }
} }
if (info.startQuestId != 0) { if (info.startQuestId != 0) {
ImGui::TextColored(ImVec4(1.0f, 0.82f, 0.0f, 1.0f), "Begins a Quest"); ImGui::TextColored(ui::colors::kTooltipGold, "Begins a Quest");
} }
if (!info.description.empty()) { if (!info.description.empty()) {
ImGui::TextColored(ImVec4(1.0f, 0.9f, 0.5f, 0.9f), "\"%s\"", info.description.c_str()); ImGui::TextColored(ImVec4(1.0f, 0.9f, 0.5f, 0.9f), "\"%s\"", info.description.c_str());