NetPlay: Fix hosting being stuck if player leaves during pending start

The logic didn't account for the case where a player leaves, so the
host would be left in a dangling state where the UI is disabled but the
game won't start, requiring a full restart of Dolphin to fix.
This commit is contained in:
Techjar 2019-03-28 02:32:06 -04:00
commit 7870704087
7 changed files with 95 additions and 27 deletions

View file

@ -137,8 +137,9 @@ private:
std::vector<std::pair<std::string, std::string>> GetInterfaceListInternal() const;
void ChunkedDataThreadFunc();
void ChunkedDataSend(sf::Packet&& packet, PlayerId pid, const TargetMode target_mode);
void SetupIndex();
void ChunkedDataAbort();
void SetupIndex();
bool PlayerHasControllerMapped(PlayerId pid) const;
NetSettings m_settings;
@ -185,6 +186,7 @@ private:
std::thread m_chunked_data_thread;
u32 m_next_chunked_data_id;
std::unordered_map<u32, unsigned int> m_chunked_data_complete_count;
bool m_abort_chunked_data = false;
ENetHost* m_server = nullptr;
TraversalClient* m_traversal_client = nullptr;