diff options
| author | JMC47 <JMC4789@gmail.com> | 2020-01-21 20:55:52 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-21 20:55:52 -0500 |
| commit | f0669f5aa63e543a8b3345ed22397c77ee4f28fd (patch) | |
| tree | b974bdf6cc070c589a42c4e8e4c16defc30437fa /Source | |
| parent | 117ebb6de32dadd03d27b054607270ebcefdec3a (diff) | |
| parent | de27dcebf62363ac482f62532f43f2f69e3315ea (diff) | |
Merge pull request #8570 from Techjar/always-sync-sram
Core/NetPlayServer: Sync SRAM on every game start
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/NetPlayServer.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 4789ef8900..b99be9a4dc 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -434,21 +434,6 @@ unsigned int NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) spac << m_host_input_authority; Send(player.socket, spac); - // sync GC SRAM with new client - if (!g_SRAM_netplay_initialized) - { - SConfig::GetInstance().m_strSRAM = File::GetUserPath(F_GCSRAM_IDX); - InitSRAM(); - g_SRAM_netplay_initialized = true; - } - spac.clear(); - spac << static_cast<MessageId>(NP_MSG_SYNC_GC_SRAM); - for (size_t i = 0; i < sizeof(g_SRAM) - offsetof(Sram, settings); ++i) - { - spac << g_SRAM[offsetof(Sram, settings) + i]; - } - Send(player.socket, spac); - // sync values with new client for (const auto& p : m_players) { @@ -1275,6 +1260,21 @@ bool NetPlayServer::StartGame() const std::string region = SConfig::GetDirectoryForRegion( SConfig::ToGameCubeRegion(m_dialog->FindGameFile(m_selected_game)->GetRegion())); + // sync GC SRAM with clients + if (!g_SRAM_netplay_initialized) + { + SConfig::GetInstance().m_strSRAM = File::GetUserPath(F_GCSRAM_IDX); + InitSRAM(); + g_SRAM_netplay_initialized = true; + } + sf::Packet srampac; + srampac << static_cast<MessageId>(NP_MSG_SYNC_GC_SRAM); + for (size_t i = 0; i < sizeof(g_SRAM) - offsetof(Sram, settings); ++i) + { + srampac << g_SRAM[offsetof(Sram, settings) + i]; + } + SendAsyncToClients(std::move(srampac), 1); + // tell clients to start game sf::Packet spac; spac << static_cast<MessageId>(NP_MSG_START_GAME); |
