mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-19 09:12:19 +00:00
Fix dummy disconnecting on hot reload
This commit is contained in:
parent
0948a53648
commit
36542327b0
|
@ -1470,6 +1470,7 @@ void CClient::ProcessServerPacket(CNetChunk *pPacket, int Conn, bool Dummy)
|
||||||
|
|
||||||
m_MapDetailsPresent = true;
|
m_MapDetailsPresent = true;
|
||||||
(void)MapSize;
|
(void)MapSize;
|
||||||
|
str_copy(m_aPreviousMapDetailsName, m_aMapDetailsName);
|
||||||
str_copy(m_aMapDetailsName, pMap);
|
str_copy(m_aMapDetailsName, pMap);
|
||||||
m_MapDetailsSha256 = *pMapSha256;
|
m_MapDetailsSha256 = *pMapSha256;
|
||||||
m_MapDetailsCrc = MapCrc;
|
m_MapDetailsCrc = MapCrc;
|
||||||
|
@ -1525,6 +1526,12 @@ void CClient::ProcessServerPacket(CNetChunk *pPacket, int Conn, bool Dummy)
|
||||||
|
|
||||||
if(m_DummyConnected)
|
if(m_DummyConnected)
|
||||||
{
|
{
|
||||||
|
if(str_comp(m_aMapDetailsName, m_aPreviousMapDetailsName) == 0)
|
||||||
|
{
|
||||||
|
m_DummyReconnectOnLoad = true;
|
||||||
|
m_DummySwapOnReconnect = g_Config.m_ClDummy == 1 ? false : true;
|
||||||
|
}
|
||||||
|
|
||||||
DummyDisconnect(0);
|
DummyDisconnect(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1655,6 +1662,11 @@ void CClient::ProcessServerPacket(CNetChunk *pPacket, int Conn, bool Dummy)
|
||||||
else if(Conn == CONN_MAIN && (pPacket->m_Flags & NET_CHUNKFLAG_VITAL) != 0 && Msg == NETMSG_CON_READY)
|
else if(Conn == CONN_MAIN && (pPacket->m_Flags & NET_CHUNKFLAG_VITAL) != 0 && Msg == NETMSG_CON_READY)
|
||||||
{
|
{
|
||||||
GameClient()->OnConnected();
|
GameClient()->OnConnected();
|
||||||
|
if(m_DummyReconnectOnLoad)
|
||||||
|
{
|
||||||
|
m_DummyReconnectOnLoad = false;
|
||||||
|
DummyConnect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(Conn == CONN_DUMMY && Msg == NETMSG_CON_READY)
|
else if(Conn == CONN_DUMMY && Msg == NETMSG_CON_READY)
|
||||||
{
|
{
|
||||||
|
@ -2747,6 +2759,16 @@ void CClient::Update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_DummySwapOnReconnect && g_Config.m_ClDummy == 1)
|
||||||
|
{
|
||||||
|
m_DummySwapOnReconnect = false;
|
||||||
|
g_Config.m_ClDummy = 0;
|
||||||
|
}
|
||||||
|
else if(!m_DummyConnected && m_DummySwapOnReconnect)
|
||||||
|
{
|
||||||
|
m_DummySwapOnReconnect = false;
|
||||||
|
}
|
||||||
|
|
||||||
m_LastDummy = (bool)g_Config.m_ClDummy;
|
m_LastDummy = (bool)g_Config.m_ClDummy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -156,6 +156,7 @@ class CClient : public IClient, public CDemoPlayer::IListener
|
||||||
|
|
||||||
bool m_MapDetailsPresent = false;
|
bool m_MapDetailsPresent = false;
|
||||||
char m_aMapDetailsName[256] = "";
|
char m_aMapDetailsName[256] = "";
|
||||||
|
char m_aPreviousMapDetailsName[256] = "";
|
||||||
int m_MapDetailsCrc = 0;
|
int m_MapDetailsCrc = 0;
|
||||||
SHA256_DIGEST m_MapDetailsSha256 = SHA256_ZEROED;
|
SHA256_DIGEST m_MapDetailsSha256 = SHA256_ZEROED;
|
||||||
char m_aMapDetailsUrl[256] = "";
|
char m_aMapDetailsUrl[256] = "";
|
||||||
|
@ -182,6 +183,8 @@ class CClient : public IClient, public CDemoPlayer::IListener
|
||||||
bool m_DummyConnecting = false;
|
bool m_DummyConnecting = false;
|
||||||
bool m_DummyConnected = false;
|
bool m_DummyConnected = false;
|
||||||
float m_LastDummyConnectTime = 0.0f;
|
float m_LastDummyConnectTime = 0.0f;
|
||||||
|
bool m_DummyReconnectOnLoad = false;
|
||||||
|
bool m_DummySwapOnReconnect = false;
|
||||||
|
|
||||||
// graphs
|
// graphs
|
||||||
CGraph m_InputtimeMarginGraph;
|
CGraph m_InputtimeMarginGraph;
|
||||||
|
|
Loading…
Reference in a new issue