diff --git a/src/render/WorldRenderer.cpp b/src/render/WorldRenderer.cpp index adf5610..c5c2bda 100644 --- a/src/render/WorldRenderer.cpp +++ b/src/render/WorldRenderer.cpp @@ -10,6 +10,18 @@ namespace td { namespace render { +ImVec4 getImGuiTeamColor(td::game::TeamColor color) { + switch (color) { + case td::game::TeamColor::None: + break; + case td::game::TeamColor::Red: + return ImVec4(1, 0, 0, 1); + case td::game::TeamColor::Blue: + return ImVec4(0, 0, 1, 1); + } + return ImVec4(1, 1, 1, 1); +} + void WorldRenderer::loadModels() { std::cout << "World Created !\n"; m_WorldVao = std::make_unique(std::move(WorldLoader::loadWorldModel(m_World))); @@ -163,8 +175,15 @@ void WorldRenderer::renderMobTooltip() const { float mobCenterY = mob->getY(); if (cursorWorldPos.x > mobCenterX - 0.5f && cursorWorldPos.x < mobCenterX + 0.5f && cursorWorldPos.y > mobCenterY - 0.5f && cursorWorldPos.y < mobCenterY + 0.5f) { + + const game::Player& sender = m_Client->getPlayerById(mob->getSender()); + ImGui::BeginTooltip(); - ImGui::Text("Sender : %s", m_Client->getPlayerById(mob->getSender()).getName().c_str()); + ImGui::Text("Sender :"); + ImGui::SameLine(); + ImGui::PushStyleColor(ImGuiCol_Text, getImGuiTeamColor(sender.getTeamColor())); + ImGui::Text("%s", sender.getName().c_str()); + ImGui::PopStyleColor(); ImGui::Text("Mob HP : %.1f/%i", mob->getHealth(), mob->getStats()->getMaxLife()); ImGui::Text("Mob Type : %s", game::MobFactory::getMobName(mob->getType()).c_str()); ImGui::Text("Mob Level : %i", mob->getLevel());