about summary refs log tree commit diff
path: root/src/game/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/client')
-rw-r--r--src/game/client/components/menus.cpp2
-rw-r--r--src/game/client/components/menus.h1
-rw-r--r--src/game/client/components/menus_browser.cpp10
-rw-r--r--src/game/client/components/scoreboard.cpp5
4 files changed, 16 insertions, 2 deletions
diff --git a/src/game/client/components/menus.cpp b/src/game/client/components/menus.cpp
index f3dddac7..42f68978 100644
--- a/src/game/client/components/menus.cpp
+++ b/src/game/client/components/menus.cpp
@@ -712,6 +712,8 @@ void CMenus::OnInit()
 	if(g_Config.m_ClShowWelcome)
 		m_Popup = POPUP_FIRST_LAUNCH;
 	g_Config.m_ClShowWelcome = 0;
+
+	Console()->Chain("add_favorite", ConchainServerbrowserUpdate, this);
 }
 
 void CMenus::PopupMessage(const char *pTopic, const char *pBody, const char *pButton)
diff --git a/src/game/client/components/menus.h b/src/game/client/components/menus.h
index 9ea9c6ef..3ad737e5 100644
--- a/src/game/client/components/menus.h
+++ b/src/game/client/components/menus.h
@@ -191,6 +191,7 @@ class CMenus : public CComponent
 	void RenderServerbrowserServerDetail(CUIRect View);
 	void RenderServerbrowserFilters(CUIRect View);
 	void RenderServerbrowser(CUIRect MainView);
+	static void ConchainServerbrowserUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
 	
 	// found in menus_settings.cpp
 	void RenderSettingsGeneral(CUIRect MainView);
diff --git a/src/game/client/components/menus_browser.cpp b/src/game/client/components/menus_browser.cpp
index 32243a2a..7d9c9d7e 100644
--- a/src/game/client/components/menus_browser.cpp
+++ b/src/game/client/components/menus_browser.cpp
@@ -566,7 +566,8 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View)
 			Row.VSplitLeft(25.0f, 0x0, &Row);
 
 			CTextCursor Cursor;
-			TextRender()->SetCursor(&Cursor, Row.x, Row.y, 12.0f, TEXTFLAG_RENDER);
+			TextRender()->SetCursor(&Cursor, Row.x, Row.y, FontSize, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END);
+			Cursor.m_LineWidth = Row.w;
 
 			const char *pName = pSelectedServer->m_aPlayers[i].m_aName;
 			if(g_Config.m_BrFilterString[0])
@@ -709,3 +710,10 @@ void CMenus::RenderServerbrowser(CUIRect MainView)
 		UI()->DoLabel(&Button, Localize("Host address"), 14.0f, -1);
 	}
 }
+
+void CMenus::ConchainServerbrowserUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
+{
+	pfnCallback(pResult, pCallbackUserData);
+	if(pResult->NumArguments() && g_Config.m_UiPage == PAGE_FAVORITES && ((CMenus *)pUserData)->Client()->State() == IClient::STATE_OFFLINE)
+		((CMenus *)pUserData)->ServerBrowser()->Refresh(IServerBrowser::TYPE_FAVORITES);
+}
diff --git a/src/game/client/components/scoreboard.cpp b/src/game/client/components/scoreboard.cpp
index 80330e9c..9558c840 100644
--- a/src/game/client/components/scoreboard.cpp
+++ b/src/game/client/components/scoreboard.cpp
@@ -226,7 +226,10 @@ void CScoreboard::RenderScoreboard(float x, float y, float w, int Team, const ch
 		str_format(aBuf, sizeof(aBuf), "%4d", pInfo->m_Score);
 		TextRender()->Text(0, x+60-TextRender()->TextWidth(0, FontSize,aBuf,-1), y, FontSize, aBuf, -1);
 		
-		TextRender()->Text(0, x+128, y, FontSize, m_pClient->m_aClients[pInfo->m_ClientId].m_aName, -1);
+		float FontSizeName = FontSize;
+		while(TextRender()->TextWidth(0, FontSizeName, m_pClient->m_aClients[pInfo->m_ClientId].m_aName, -1) > w-200)
+			--FontSizeName;
+		TextRender()->Text(0, x+128, y+(FontSize-FontSizeName)/2, FontSizeName, m_pClient->m_aClients[pInfo->m_ClientId].m_aName, -1);
 
 		str_format(aBuf, sizeof(aBuf), "%4d", pInfo->m_Latency);
 		float tw = TextRender()->TextWidth(0, FontSize, aBuf, -1);