From f70df191a9ae30da13939782789e551251d4c888 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 17 Mar 2026 13:47:53 -0700 Subject: [PATCH] feat: show tactical role badges (MT/MA/Asst) in raid frames Render "MT" (orange), "MA" (blue), and "A" (light blue) in the bottom-left of each raid cell using member flags from SMSG_GROUP_LIST and SMSG_REAL_GROUP_UPDATE (bits 0x02/0x04/0x01). Complements the existing LFG role badges at bottom-right. --- src/ui/game_screen.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index 81b7af77..317f03de 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -9351,6 +9351,15 @@ void GameScreen::renderPartyFrames(game::GameHandler& gameHandler) { else if (m.roles & 0x08) draw->AddText(ImVec2(cellMax.x - 11.0f, cellMax.y - 11.0f), IM_COL32(220, 80, 80, 230), "D"); + // Tactical role badge in bottom-left corner (flags from SMSG_GROUP_LIST / SMSG_REAL_GROUP_UPDATE) + // 0x01=Assistant, 0x02=Main Tank, 0x04=Main Assist + if (m.flags & 0x02) + draw->AddText(ImVec2(cellMin.x + 2.0f, cellMax.y - 11.0f), IM_COL32(255, 140, 0, 230), "MT"); + else if (m.flags & 0x04) + draw->AddText(ImVec2(cellMin.x + 2.0f, cellMax.y - 11.0f), IM_COL32(100, 180, 255, 230), "MA"); + else if (m.flags & 0x01) + draw->AddText(ImVec2(cellMin.x + 2.0f, cellMax.y - 11.0f), IM_COL32(180, 215, 255, 180), "A"); + // Health bar uint32_t hp = m.hasPartyStats ? m.curHealth : 0; uint32_t maxHp = m.hasPartyStats ? m.maxHealth : 0;