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

Method PumpNetwork

src/engine/client/client.cpp:2548–2626  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2546}
2547
2548void CClient::PumpNetwork()
2549{
2550 for(auto &NetClient : m_aNetClient)
2551 {
2552 NetClient.Update();
2553 }
2554
2555 if(State() != IClient::STATE_DEMOPLAYBACK)
2556 {
2557 // check for errors of main and dummy
2558 if(State() != IClient::STATE_OFFLINE && State() < IClient::STATE_QUITTING)
2559 {
2560 if(m_aNetClient[CONN_MAIN].State() == NETSTATE_OFFLINE)
2561 {
2562 // This will also disconnect the dummy, so the branch below is an `else if`
2563 Disconnect();
2564 char aBuf[256];
2565 str_format(aBuf, sizeof(aBuf), "offline error='%s'", m_aNetClient[CONN_MAIN].ErrorString());
2566 m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "client", aBuf, CLIENT_NETWORK_PRINT_ERROR_COLOR);
2567 }
2568 else if((DummyConnecting() || DummyConnected()) && m_aNetClient[CONN_DUMMY].State() == NETSTATE_OFFLINE)
2569 {
2570 const bool WasConnecting = DummyConnecting();
2571 DummyDisconnect(nullptr);
2572 char aBuf[256];
2573 str_format(aBuf, sizeof(aBuf), "offline dummy error='%s'", m_aNetClient[CONN_DUMMY].ErrorString());
2574 m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "client", aBuf, CLIENT_NETWORK_PRINT_ERROR_COLOR);
2575 if(WasConnecting)
2576 {
2577 str_format(aBuf, sizeof(aBuf), "%s: %s", Localize("Could not connect dummy"), m_aNetClient[CONN_DUMMY].ErrorString());
2578 GameClient()->Echo(aBuf);
2579 }
2580 }
2581 }
2582
2583 // check if main was connected
2584 if(State() == IClient::STATE_CONNECTING && m_aNetClient[CONN_MAIN].State() == NETSTATE_ONLINE)
2585 {
2586 // we switched to online
2587 m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "client", "connected, sending info", CLIENT_NETWORK_PRINT_COLOR);
2588 SetState(IClient::STATE_LOADING);
2589 SetLoadingStateDetail(IClient::LOADING_STATE_DETAIL_INITIAL);
2590 SendInfo(CONN_MAIN);
2591 }
2592
2593 // progress on dummy connect when the connection is online
2594 if(m_DummySendConnInfo && m_aNetClient[CONN_DUMMY].State() == NETSTATE_ONLINE)
2595 {
2596 m_DummySendConnInfo = false;
2597 SendInfo(CONN_DUMMY);
2598 m_aNetClient[CONN_DUMMY].Update();
2599 SendReady(CONN_DUMMY);
2600 GameClient()->SendDummyInfo(true);
2601 SendEnterGame(CONN_DUMMY);
2602 }
2603 }
2604
2605 // process packets

Callers

nothing calls this directly

Calls 9

str_formatFunction · 0.85
LocalizeFunction · 0.85
SendDummyInfoMethod · 0.80
UpdateMethod · 0.45
StateMethod · 0.45
ErrorStringMethod · 0.45
PrintMethod · 0.45
EchoMethod · 0.45
RecvMethod · 0.45

Tested by

no test coverage detected