From 84f9d2e493e3111f67d87beb6e0add43cc99a459 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 13 Mar 2026 08:57:44 -0700 Subject: [PATCH] feat: color class names by WoW class color in character selection screen --- src/ui/character_screen.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/ui/character_screen.cpp b/src/ui/character_screen.cpp index bce4c6dc..96b53dd0 100644 --- a/src/ui/character_screen.cpp +++ b/src/ui/character_screen.cpp @@ -37,6 +37,22 @@ static uint64_t hashEquipment(const std::vector& eq) { return h; } +static ImVec4 classColor(uint8_t classId) { + switch (classId) { + case 1: return ImVec4(0.78f, 0.61f, 0.43f, 1.0f); // Warrior #C79C6E + case 2: return ImVec4(0.96f, 0.55f, 0.73f, 1.0f); // Paladin #F58CBA + case 3: return ImVec4(0.67f, 0.83f, 0.45f, 1.0f); // Hunter #ABD473 + case 4: return ImVec4(1.00f, 0.96f, 0.41f, 1.0f); // Rogue #FFF569 + case 5: return ImVec4(1.00f, 1.00f, 1.00f, 1.0f); // Priest #FFFFFF + case 6: return ImVec4(0.77f, 0.12f, 0.23f, 1.0f); // DeathKnight #C41F3B + case 7: return ImVec4(0.00f, 0.44f, 0.87f, 1.0f); // Shaman #0070DE + case 8: return ImVec4(0.41f, 0.80f, 0.94f, 1.0f); // Mage #69CCF0 + case 9: return ImVec4(0.58f, 0.51f, 0.79f, 1.0f); // Warlock #9482C9 + case 11: return ImVec4(1.00f, 0.49f, 0.04f, 1.0f); // Druid #FF7D0A + default: return ImVec4(0.85f, 0.85f, 0.85f, 1.0f); + } +} + void CharacterScreen::render(game::GameHandler& gameHandler) { ImGuiViewport* vp = ImGui::GetMainViewport(); const ImVec2 pad(24.0f, 24.0f); @@ -224,7 +240,7 @@ void CharacterScreen::render(game::GameHandler& gameHandler) { ImGui::Text("%s", game::getRaceName(character.race)); ImGui::TableSetColumnIndex(3); - ImGui::Text("%s", game::getClassName(character.characterClass)); + ImGui::TextColored(classColor(static_cast(character.characterClass)), "%s", game::getClassName(character.characterClass)); ImGui::TableSetColumnIndex(4); { @@ -331,7 +347,7 @@ void CharacterScreen::render(game::GameHandler& gameHandler) { ImGui::Text("Level %d", character.level); ImGui::Text("%s", game::getRaceName(character.race)); - ImGui::Text("%s", game::getClassName(character.characterClass)); + ImGui::TextColored(classColor(static_cast(character.characterClass)), "%s", game::getClassName(character.characterClass)); ImGui::Text("%s", game::getGenderName(character.gender)); ImGui::Spacing(); {