diff options
| author | oy <Tom_Adams@web.de> | 2011-06-09 23:49:06 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-06-09 23:49:06 +0200 |
| commit | fd965ca4b2c462861accf636f8c0ceecab866ff1 (patch) | |
| tree | 1553c5c2f8c531731abb10b314c3fbde9ec27ac4 | |
| parent | 37bdc4c2a165d606549b395779e7e308e1647388 (diff) | |
| download | zcatch-fd965ca4b2c462861accf636f8c0ceecab866ff1.tar.gz zcatch-fd965ca4b2c462861accf636f8c0ceecab866ff1.zip | |
made name highlighting in chat more strict
| -rw-r--r-- | src/game/client/components/chat.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/game/client/components/chat.cpp b/src/game/client/components/chat.cpp index 5f897ece..76d8cc44 100644 --- a/src/game/client/components/chat.cpp +++ b/src/game/client/components/chat.cpp @@ -264,6 +264,7 @@ void CChat::AddLine(int ClientID, int Team, const char *pLine) char *p = const_cast<char*>(pLine); while(*p) { + Highlighted = false; pLine = p; // find line seperator and strip multiline while(*p) @@ -282,9 +283,16 @@ void CChat::AddLine(int ClientID, int Team, const char *pLine) m_aLines[m_CurrentLine].m_ClientID = ClientID; m_aLines[m_CurrentLine].m_Team = Team; m_aLines[m_CurrentLine].m_NameColor = -2; - m_aLines[m_CurrentLine].m_Highlighted = str_find_nocase(pLine, m_pClient->m_aClients[m_pClient->m_Snap.m_LocalClientID].m_aName) != 0; - if(m_aLines[m_CurrentLine].m_Highlighted) - Highlighted = true; + + // check for highlighted name + const char *pHL = str_find_nocase(pLine, m_pClient->m_aClients[m_pClient->m_Snap.m_LocalClientID].m_aName); + if(pHL) + { + int Length = str_length(m_pClient->m_aClients[m_pClient->m_Snap.m_LocalClientID].m_aName); + if((pLine == pHL || pHL[-1] == ' ') && (pHL[Length] == 0 || pHL[Length] == ' ' || (pHL[Length] == ':' && pHL[Length+1] == ' '))) + Highlighted = true; + } + m_aLines[m_CurrentLine].m_Highlighted = Highlighted; if(ClientID == -1) // server message { |