MCPcopy Create free account
hub / github.com/ddnet/ddnet / LoadDDNetInfo

Method LoadDDNetInfo

src/engine/client/client.cpp:2450–2533  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2448}
2449
2450void CClient::LoadDDNetInfo()
2451{
2452 const json_value *pDDNetInfo = m_ServerBrowser.LoadDDNetInfo();
2453
2454 if(!pDDNetInfo)
2455 {
2456 m_InfoState = EInfoState::ERROR;
2457 return;
2458 }
2459
2460 const json_value &DDNetInfo = *pDDNetInfo;
2461 const json_value &CurrentVersion = DDNetInfo["version"];
2462 if(CurrentVersion.type == json_string)
2463 {
2464 char aNewVersionStr[64];
2465 str_copy(aNewVersionStr, CurrentVersion);
2466 char aCurVersionStr[64];
2467 str_copy(aCurVersionStr, GAME_RELEASE_VERSION);
2468 if(ToVersion(aNewVersionStr) > ToVersion(aCurVersionStr))
2469 {
2470 str_copy(m_aVersionStr, CurrentVersion);
2471 }
2472 else
2473 {
2474 m_aVersionStr[0] = '0';
2475 m_aVersionStr[1] = '\0';
2476 }
2477 }
2478
2479 const json_value &News = DDNetInfo["news"];
2480 if(News.type == json_string)
2481 {
2482 // Only mark news button if something new was added to the news
2483 if(m_aNews[0] && str_find(m_aNews, News) == nullptr)
2484 g_Config.m_UiUnreadNews = true;
2485
2486 str_copy(m_aNews, News);
2487 }
2488
2489 const json_value &MapDownloadUrl = DDNetInfo["map-download-url"];
2490 if(MapDownloadUrl.type == json_string)
2491 {
2492 str_copy(m_aMapDownloadUrl, MapDownloadUrl);
2493 }
2494
2495 const json_value &Points = DDNetInfo["points"];
2496 if(Points.type == json_integer)
2497 {
2498 m_Points = Points.u.integer;
2499 }
2500
2501 const json_value &StunServersIpv6 = DDNetInfo["stun-servers-ipv6"];
2502 if(StunServersIpv6.type == json_array && StunServersIpv6[0].type == json_string)
2503 {
2504 NETADDR Addr;
2505 if(!net_addr_from_str(&Addr, StunServersIpv6[0]))
2506 {
2507 m_aNetClient[CONN_MAIN].FeedStunServer(Addr);

Callers

nothing calls this directly

Calls 7

ToVersionFunction · 0.85
str_findFunction · 0.85
net_addr_from_strFunction · 0.85
GraphicsFunction · 0.85
str_copyFunction · 0.50
FeedStunServerMethod · 0.45

Tested by

no test coverage detected