From 9919173cebea9a73319b10a654e43f886f47741e Mon Sep 17 00:00:00 2001 From: Learath2 Date: Fri, 10 Mar 2017 18:49:39 +0100 Subject: [PATCH] Just color the heart preserving team information. Fixes #606 --- src/game/client/components/chat.cpp | 24 ++++++++----------- src/game/client/components/chat.h | 1 + src/game/client/components/menus_settings.cpp | 21 +++++++--------- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/game/client/components/chat.cpp b/src/game/client/components/chat.cpp index 52c77081e..4cfe304ca 100644 --- a/src/game/client/components/chat.cpp +++ b/src/game/client/components/chat.cpp @@ -539,19 +539,13 @@ void CChat::AddLine(int ClientID, int Team, const char *pLine) Highlighted = true; } else - { - if(g_Config.m_ClMessageFriend && m_pClient->m_aClients[ClientID].m_Friend) - { - str_format(m_aLines[m_CurrentLine].m_aName, sizeof(m_aLines[m_CurrentLine].m_aName), "♥ %s", m_pClient->m_aClients[ClientID].m_aName); - m_aLines[m_CurrentLine].m_NameColor = 2; - } - else - str_copy(m_aLines[m_CurrentLine].m_aName, m_pClient->m_aClients[ClientID].m_aName, sizeof(m_aLines[m_CurrentLine].m_aName)); - } + str_copy(m_aLines[m_CurrentLine].m_aName, m_pClient->m_aClients[ClientID].m_aName, sizeof(m_aLines[m_CurrentLine].m_aName)); str_format(m_aLines[m_CurrentLine].m_aText, sizeof(m_aLines[m_CurrentLine].m_aText), ": %s", pLine); } + m_aLines[m_CurrentLine].m_Friend = m_pClient->m_aClients[ClientID].m_Friend; + char aBuf[1024]; str_format(aBuf, sizeof(aBuf), "%s%s", m_aLines[m_CurrentLine].m_aName, m_aLines[m_CurrentLine].m_aText); Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, Team >= 2?"whisper":(m_aLines[m_CurrentLine].m_Team?"teamchat":"chat"), aBuf, Highlighted); @@ -750,6 +744,13 @@ void CChat::OnRender() TextRender()->SetCursor(&Cursor, Begin, y, FontSize, TEXTFLAG_RENDER); Cursor.m_LineWidth = LineWidth; + if(g_Config.m_ClMessageFriend && m_aLines[r].m_Friend) + { + vec3 rgb = HslToRgb(vec3(g_Config.m_ClMessageFriendHue / 255.0f, g_Config.m_ClMessageFriendSat / 255.0f, g_Config.m_ClMessageFriendLht / 255.0f)); + TextRender()->TextColor(rgb.r, rgb.g, rgb.b, Blend); + TextRender()->TextEx(&Cursor, "♥ ", -1); + } + // render name if (m_aLines[r].m_ClientID == -1) // system { @@ -772,11 +773,6 @@ void CChat::OnRender() TextRender()->TextColor(0.7f, 0.7f, 1.0f, Blend); // blue else if(m_aLines[r].m_NameColor == TEAM_SPECTATORS) TextRender()->TextColor(0.75f, 0.5f, 0.75f, Blend); // spectator - else if(m_aLines[r].m_NameColor == 2) - { - vec3 rgb = HslToRgb(vec3(g_Config.m_ClMessageFriendHue / 255.0f, g_Config.m_ClMessageFriendSat / 255.0f, g_Config.m_ClMessageFriendLht / 255.0f)); - TextRender()->TextColor(rgb.r, rgb.g, rgb.b, Blend); - } else if(m_aLines[r].m_ClientID >= 0 && g_Config.m_ClChatTeamColors && m_pClient->m_Teams.Team(m_aLines[r].m_ClientID)) { vec3 rgb = HslToRgb(vec3(m_pClient->m_Teams.Team(m_aLines[r].m_ClientID) / 64.0f, 1.0f, 0.75f)); diff --git a/src/game/client/components/chat.h b/src/game/client/components/chat.h index fce2012bb..c3da3c698 100644 --- a/src/game/client/components/chat.h +++ b/src/game/client/components/chat.h @@ -24,6 +24,7 @@ class CChat : public CComponent int m_NameColor; char m_aName[64]; char m_aText[512]; + bool m_Friend; bool m_Highlighted; }; diff --git a/src/game/client/components/menus_settings.cpp b/src/game/client/components/menus_settings.cpp index 93a6ec35e..34bbeeb59 100644 --- a/src/game/client/components/menus_settings.cpp +++ b/src/game/client/components/menus_settings.cpp @@ -1318,7 +1318,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) { static int pIDP1 = 0, pIDP2 = 0; static int Page = 1; - CUIRect Left, Right, HUD, Messages, Button, Label, Weapon, Laser, Page1Tab, Page2Tab, Enable; + CUIRect Left, Right, HUD, Messages, Button, Label, Weapon, Laser, Page1Tab, Page2Tab, Enable, Heart; MainView.HSplitTop(150.0f, &HUD, &MainView); @@ -1609,21 +1609,18 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) vec3 rgbf = HslToRgb(vec3(g_Config.m_ClMessageFriendHue / 255.0f, g_Config.m_ClMessageFriendSat / 255.0f, g_Config.m_ClMessageFriendLht / 255.0f)); TextRender()->TextColor(rgbf.r, rgbf.g, rgbf.b, 1.0f); - str_format(aBuf, sizeof aBuf, "♥ %s", Localize("Friend")); - float tw = TextRender()->TextWidth(0, 12.0f, aBuf, -1); + float hw = TextRender()->TextWidth(0, 12.0f, "♥ ", -1); + Label.VSplitLeft(hw, &Heart, &Label); + UI()->DoLabelScaled(&Heart, "♥ ", 12.0f, -1); + + TextRender()->TextColor(0.8f, 0.8f, 0.8f, 1.0f); + float tw = TextRender()->TextWidth(0, 12.0f, Localize("Friend"), -1); Label.VSplitLeft(tw, &Label, &Button); - UI()->DoLabelScaled(&Label, aBuf, 12.0f, -1); + UI()->DoLabelScaled(&Label, Localize("Friend"), 12.0f, -1); vec3 rgb = HslToRgb(vec3(g_Config.m_ClMessageHue / 255.0f, g_Config.m_ClMessageSat / 255.0f, g_Config.m_ClMessageLht / 255.0f)); TextRender()->TextColor(rgb.r, rgb.g, rgb.b, 1.0f); - char name[16]; - str_copy(name, g_Config.m_PlayerName, sizeof(name)); - str_format(aBuf, sizeof(aBuf), ": %s", Localize ("Look out!")); - while (TextRender()->TextWidth(0, 12.0f, aBuf, -1) > Button.w) - { - name[str_length(name) - 1] = 0; - str_format(aBuf, sizeof(aBuf), ": %s: %s", name, Localize("Look out!")); - } + str_format(aBuf, sizeof(aBuf), ": %s", Localize("Hi o/")); UI()->DoLabelScaled(&Button, aBuf, 12.0f, -1); TextRender()->TextColor(1.0f, 1.0f, 1.0f, 1.0f);